┌──────────────┐
│perl超入門(1)        │
│  2002/10/14 : 初版    │
│  2010/05/22 : Tool記述修正│
└──────────────┘

[▲Perl Home▲]
環境整備

 ソフトの入手

  ※現在はActivePerlを使うのが良いかと思います。
    http://www.activestate.com/activeperl/downloads
   ActivePerlを使用する場合、以下「環境整備」の項はスキップして下さい。

※ActivePerl使用ならスキップ
↑  ・jperl for win32 (perl5)等を入手し、インストールする。

|  
|  ・インストールは展開してパスを繋げるだけ。
|    + XP/2000ならば
|      マイコンピュータ(逆クリックメニュー)
|       --> プロパティ
|        --> 詳細設定
|        --> 環境変数
|         --> pathの編集
|    
|    + 95/98/MEならば
|      環境変数のバッチファイルを作り、ショートカットに登録する。
|        (例) PATH = %PATH%;C:\jperl\bin
| 
| 使い方
|  ・スクリプト実行(*0) : jperl スクリプトファイル名
|  
↓  ・文法チェック : jperl -wc スクリプトファイル名


データと変数

 文とコメント
 
  ・文末:セミコロン(;)
  ・コメント:シャープ(#)

  ・print
    print "文字列"; or print("文字列");
  
  ・メタ文字(代表的なもの)
    + 改行  : \n
    + \   : \\
    + タブ  : \t
    + ビープ : \a

 ┌─────────────────────────────────────┐
  # perl script No.1
  print "表示1";
  print "表示2 ";
  print "文字列表示\n", "改行後表示";
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  表示1表示2 文字列表示
  改行後表示
 └─────────────────────────────────────┘


 データ(定数)
 
  ・文字列データ
    + 「"」ダブルクォートで囲むと内部が評価される
    + 「'」 シングルクォートで囲むと評価されない(ただの文字扱い)

 ┌─────────────────────────────────────┐
  print "表示1\n表示2"; #ダブルクォート
  print '表示1\n表示2'; #シングルクォート
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  表示1
  表示2表示1\n表示2
 └─────────────────────────────────────┘

  ・数値データ:「"」又は「'」で囲まない
  
  ・スカラーとリスト
    + 単独のデータ : スカラー
      (例) 123  "a"
    + リスト:複数のデータをカンマ(,)で区切りつつ括弧()でまとめたもの
     →グループで扱うことができる
      (例) (123, "a", 14, 'bc')


 変数
 
  ・変数には3種類
    + スカラー変数
    + 配列変数(リスト)
    + 連想配列変数(ハッシュリスト)
  
  ・スカラー変数
    + 先頭に「$」を付ける
    + 代入は「=」で
    + 変数の宣言文は無い。(BASICライク)

 ┌─────────────────────────────────────┐
  $age = 33;    #数値
  $name = "Monpe"; #文字列
  
  print "年齢=",$age," 名前=",$name; #表示方法1
  print "\n";
  print "年齢=$age 名前=$name";    #表示方法2(文字列内評価)
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  年齢=33 名前=Monpe
  年齢=33 名前=Monpe
 └─────────────────────────────────────┘
 
  ・数値のスカラー変数は(もちろん定数も)演算できる
    +「+」 : 加算
    +「-」 : 減算
    +「*」 : 乗算
    +「/」 : 除算
    +「%」 : 剰余算
    +「**」: べき乗
  
 ┌─────────────────────────────────────┐
  $x = 10;
  $y = 20;
  $z = $x + $y;
  print $x, " ", $y, " ", $z, " ", $x+$y;
  print "\n";
  
  $a = "今日は";
  $b = "10月14日";
  print $a, " ", $b; # 文字列データは演算できない
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  10 20 30 30
  今日は 10月14日
 └─────────────────────────────────────┘
  
  ・配列変数
    + 先頭に「@」を付ける
    + 配列にはリストを指定する
      (例)@member = ("abc", "def", "ghi");
    + 要素は先頭$と番号で指定できる。このときはスカラー変数として扱える
      (例)$member[1] = "DEF";
    + print "@配列"; 時は、要素間にスペースデリミタが入って表示される
    + print @配列名; では、そのまま連結文字で表示される(*1)
    + $#配列名 は最後の添字番号を表す。
    
 ┌─────────────────────────────────────┐
  @member = ("abc", "def", "ghi");
  print @member;
  print "\n";
  print "@member";
  print "\n";
  
  $member[0] = "ABCZ"; #(*2)
  print @member;
  print "\n";
  print "@member";
  print "\n";
  print "$#member";
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  abcdefghi
  abc def ghi
  ABCZdefghi
  ABCZ def ghi
  2
 └─────────────────────────────────────┘

  ・連想配列変数(ハッシュリスト)
    + 配列要素をキー(ハッシュ)とバリューの組にして指定する
    + 組指定には2種類
      << perl4まで >>
       %member = ("赤","赤レンジャイ",
             "黄","黄レンジャイ",
             "黒","黒レンジャイ");

      << perl5から >>
       %member = ("赤"=>"赤レンジャイ",
             "黄"=>"黄レンジャイ",
             "黒"=>"黒レンジャイ");

    + 先頭「%」で始まる
    + 連想配列は「"」の中で記述しても評価されない。
    + 連想配列を print %連想配列名; とすれば、キーとバリューが連続表示される
    + キーの指定で連想配列を扱うには $連想配列名 {'キー値'} と表記

 ┌─────────────────────────────────────┐
  %member = ("赤"=>"赤レンジャイ",
        "黄"=>"黄レンジャイ",
        "黒"=>"黒レンジャイ");
  print %member, "\n";
  print "赤と言えば:",$member{'赤'},"\n";
  print "黒と言えば:",$member{'黒'},"\n";
  print "黄と言えば:$member{'黄'}\n"; #(*3)
 └─────────────────────────────────────┘
 ┌─────────────────────────────────────┐
  黒黒レンジャイ黄黄レンジャイ赤赤レンジャイ
  赤と言えば:赤レンジャイ
  黒と言えば:黒レンジャイ
  黄と言えば:黄レンジャイ
 └─────────────────────────────────────┘

(次回へ続く)
注意
 (*0)UNIX環境でのインストールや実行については、後日コメント追加する。
 
 (*1)「"」の中は評価される。なので、配列要素が入った際は自動的に処理が加わること
   を意味する。

 (*2)データの領域が自動的に広げられている。Cでは考えられない便利な機能。
 
 (*3)キー値は「"」でも指定できるが、「"」中で変数値を評価したい場合には「'」指定
   にしなければならない。結果的に「'」の表記を習慣づけた方が良い。
[▲Perl Home▲]