はじめに
備忘録の意味も含めて、Perlの基本文法をまとめたいと思います。Perlでは、同じ目的を達成するために様々な書き方が存在します。ここでは、標準的(と私が考える)なものを極力選びました。
スクリプトの実行
Perlで書かれたスクリプトを実行するには、コマンドライン上でperlコマンドを利用します。
$ perl test.pl
構文チェックのためにコンパイルのみを行うには-cオプションを付けます。
$ perl -c test.pl
デバッガを利用するには-dオプションを付けます。
$ perl -d test.pl
また、スクリプトの先頭のシバン(Shebang)でperlインタプリタを指定すれば、スクリプト名だけで実行できます。ファイルに実行権限を与えることをお忘れなく。
#!/usr/bin/perl ...
$ chmod u+x test.pl $ ./test.pl
コメント
一行コメント
一行をコメントアウトするには#を利用します。行の途中から利用することもでき、#から行末までがスクリプトの実行中に無視されます。
# Comment here if ($x > 50) { ... } my $x = 100; # Comment here
複数行コメント
複数行を同時にコメントアウトするには、対象の行を=podと=cutで囲みます。ただ、通常は複数行であっても#を利用する場合が多いと思います。
=pod Multiple lines can be commented like this. =cut
変数
スカラー変数
スカラー変数とは、文字列や数値など、一つの値を格納するために使う変数です。変数名は必ず「$」で始め、半角英数および「_」(アンダースコア)が利用できますが、命名規則としてスネークケース(小文字の英語と数字だけを使用し、文字間の連結にアンダースコアを利用する方法)にするのが一般的です。
$number = 10; $site_url = 'http://blog.codebase.co.jp';
配列変数
配列変数とは、複数の値を順番に格納するために使う変数です。変数名は「@」で始め、それ以降はスカラー変数と同様です。
@fruits = ('Apple', 'Orange', 'Banana');
上記のように、複数の値を同時に格納することもできますし、以下のように何番目に格納するか番号で指定することも可能です。
$fruits[0] = 'Apple'; $fruits[1] = 'Orange'; $fruits[2] = 'Banana';
この場合は、変数名の先頭が「$」になることに注意してください。
ハッシュ変数
ハッシュ変数とは、連想配列変数とも呼ばれ、複数の値をキーを指定して格納するために使う変数です。変数名は「%」で始め、それ以降はスカラー変数と同様です。
%profile = ('Name' => 'Taro', 'Gender' => 'Male', 'Tel' => '090-xxxx-xxxx');
配列と同様、個別にキーを指定して代入することもできます。
$profile{'Name'} = 'Taro'; $profile{'Gender'} = 'Male'; $profile{'Tel'} = '090-xxxx-xxxx';
制御構文
条件分岐
if – elsif – else
条件分岐にはifを使います。
my $fee; if ($age >= 20) { $fee = 1800; } elsif ($age >= 12) { $fee = 1000; } else { $fee = 0; }
繰り返し
for (foreach)
指定した回数分繰り返すにはforが便利です。
for (my $i = 0; $i < 10; $i++) { print $i; }
また、配列の中身を展開する場合にも利用することができます。
my @fruits = ('Apple', 'Orange', 'Banana'); foreach my $fruit (@fruits) { print $fruit; }
ちなみに、forもforeachも文法上区別はありませんが、私は上記のような使い分けをしています。