文書の先頭では、必ず以下の文を記述する。
use strict; # 厳しい文法チェック
use warnings; # 警告を表示
# この行ではこれ以降はコメントになる
# スカラ変数: 一つの値
my $num;
# 配列変数: 複数の値
my @students
# ハッシュ変数: 複数のキーと値のペア
my %month_num;
-
シングルクオートかダブルクオートを用いて表す。
-
ダブルクオートの中には、特殊文字:
\n
(改行)や\t
(タブ)を含むことができる。 -
ダブルクオートで囲まれた文字列の中では、変数が展開される。
-
文字列の連結には
.
を使う。my $animal = 'dog';
my $message = "I like $animal";
my $message_2 = 'I like' . ' cat';
my @nums;
# リスト形式で値を代入
@nums = (5, 10, 15);
Perlでは、1つの値を表現するときは、変数名の先頭が常に$
になる。
# 変数の頭が「@」ではなく「$」になる
$nums[1] = 100;
my @strs = ("aaa", "bbb", "ccc");
my @strs = qw/aaa bbb ccc/;
配列の要素を順番に処理する。
#
foreach my $num (@nums) {
# 繰り返しの処理
}
# for(初期値; 条件; 値の更新)
# @numsは配列の要素の個数
for (my $i = 0; $i < @nums; $i++) {
# 繰り返しの処理
}
# while(繰り返し処理を行なう条件)
my $i = 0;
while ($i < @nums) {
# 繰り返しの処理
$++; # 値の更新
}
my %scores;
%scores = (
math => 55,
english => 70,
japanese => 100
);
keys
関数ですべてのキーを取得できる。
# すべてのキーを取得
my $subjects = keys %scores;
sort
関数で昇順に並べ替え
my subjects = sort keys %scores;
if (条件1) {
# 条件1が満たされている場合の処理
} elsif (条件2) {
# 条件2が満たされている場合の処理
} else {
# それ以外の場合の処理
}
演算子 | 意味 |
---|---|
== | 等しい |
!= | 等しくない |
< | より小さい |
> | より大きい |
<= | 以下 |
>= | 以上 |
演算子 | 意味 |
---|---|
eq | 等しい |
ne | 等しくない |
lt | より小さい |
gt | より大きい |
le | 以下 |
ge | 以上 |
関数のこと。
# 呼び出し
サブルーチン名(引数)
# 定義
sub 名前 {
# 引数
my @nums = @_;
# 戻り値
return 値;
}
# open ファイルハンドル, モード, ファイル名
open my $fh, '<', $file;
open
関数は、失敗するとundef
(未定義値)を返すので、or
演算子でエラー処理を行なう。
# エラー処理
# メッセージを表示して終了させる
# 「$!」にはOSが返したエラーメッセージが含まれる
open my $fh, '<', $file
or die "cannot open file \"$file\": $!"
変数の値が定義されているかチェックできる(宣言はされている必要がある)。
my $is_defined = defined $value;
-
1つの引数を受け取るには
shift
関数を使う。 -
shift
関数は、配列の先頭の要素を取り出す関数。 -
コマンドライン引数:
@ARGV
my $file = shift;
my $file = @ARGV;
#
my @num = @ARGV;
#
my ($file, $type) = @ARGV;