┌──────────────┐
│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▲]