目次
文法チェックと警告の表示
スクリプトを書く時には必ずファイルの先頭に次の2行を入れます。
use strict;
use warnings;
変数宣言
変数宣言には my
をつけます。
スカラ変数
スカラ変数は $
で始めます。
my $num = 1;
my $message = 'Hello';
配列変数
配列の定義
配列変数は @
で始めます。
my @nums = (1, 2, 3);
配列の要素の参照
配列の要素を参照するときは変数の最初は $
にします。
use strict;
use warnings;
my @nums = (1, 2, 3);
print $nums[0] . "\n";
print $nums[1] . "\n";
print $nums[2] . "\n";
このスクリプトの実行結果は次のようになります。
1
2
3
配列の長さの取得
配列をスカラコンテキストで評価すると長さを取得できます。
use strict;
use warnings;
my @nums = (1, 2, 3);
my $length = @nums;
print "length: $length\n";
このスクリプトの実行結果は次のようになります。
length: 3
ハッシュ変数
ハッシュの定義
ハッシュ変数は %
で始めます。
my %months = ('Jan' => 'January', 'Feb' => 'Feburary');
ハッシュの要素の参照
ハッシュの要素を参照するときは変数の最初は $
にします。
use strict;
use warnings;
my %months = ('Jan' => 'January', 'Feb' => 'Feburary');
print $months{'Jan'} . "\n";
このスクリプトの実行結果は次のようになります。
Jan
Feb
コメント
コメント行は #
で始めます
# これはコメントです
文字列
文字列はシングルクオートまたはダブルクオートで囲みます。
文字列の配列を作る
四則演算
print 1 + 1 . "\n"; # => 2
print 1 - 1 . "\n"; # => 0
print 3 * 2 . "\n"; # => 6
print 3 / 2 . "\n"; # => 1.5
print int(3 / 2) . "\n"; # => 1
print 3 % 2 . "\n"; # => 1
関数呼び出し
関数呼び出しの括弧は省略できます。
print("Hello World\n");
print "Hello World\n";
繰り返し
繰り返しには foreach
, for
, while
を使います。
foreachでの繰り返し
use strict;
use warnings;
my @nums = (1, 2, 3);
my $sum = 0;
foreach my $num (@nums) {
$sum += $num;
}
print "sum: $sum\n";
このスクリプトの実行結果は次のようになります。
sum: 6
forでの繰り返し
use strict;
use warnings;
my @nums = (1, 2, 3);
my $sum = 0;
for (my $i = 0; $i < @nums; $i++) {
$sum += $nums[$i];
}
print "sum: $sum\n";
whileでの繰り返し
use strict;
use warnings;
my @nums = (1, 2, 3);
my $i = 0;
my $sum = 0;
while ($i < @nums) {
$sum += $nums[$i];
$i++;
}
print "sum: $sum\n";
ハッシュの繰り返し
ハッシュ内の繰り返しはハッシュのキー一覧を取得する keys
関数を利用して行います。
use strict;
use warnings;
my %months = ('Jan' => 'January', 'Feb' => 'Feburary');
foreach my $key (keys %months) {
print $months{$key} . "\n";
}
このスクリプトの実行結果は次のようになります。
January
Feburary
条件分岐
条件分岐には if
, elsif
, else
を使います。
use strict;
use warnings;
my @nums = (1, 2, 3, 4, 5);
foreach my $num (@nums) {
if ($num % 15 == 0) {
print "FizzBuzz\n";
} elsif ($num % 3 == 0) {
print "Fizz\n";
} elsif ($num % 5 == 0) {
print "Buzz\n"
} else {
print $num . "\n";
}
}
サブルーチンの定義
サブルーチンは sub
で定義します。引数は @_
という配列に入り、結果は return
で返します。
use strict;
use warnings;
sub plus {
my ($a, $b) = @_;
return $a + $b;
}
my $result = plus 1, 2;
print $result . "\n";
このスクリプトの実行結果は次のようになります。
3