Perlでは「sigil」という文字で変数の種類を指定します。Sigilには4種類あり、
それぞれの "$
", "@
", "%
", "*
"を使用して区別します。
$scalar
@list
%hash
*glob
なお同名の変数が存在しても、sigilが違えば別の変数と認識されます。
# 以下は全て別の変数として認識されます
my $x;
my @x;
my %x;
Perlには文字列と数値を区別して保存する方法はありません。全てスカラーという種類の変数に値を格納します。
my $x = "this is a text";
my $y = 1234;
複数のスカラーを一つの変数に順番に格納する場合に配列を使います。
my @x = (1, 2, 3, 4);
my @y = ("this", "is", "a", "list");
my @z = (100, "mixed", 200, "list");
my $x = 100;
my $y = 200;
my $z = 3000;
my @xyz = ($x, $y, $z);
配列のn番目の要素にアクセスするにはnを添え字として使用します。 添え字は 1ではなく、0から開始します。
my @x = ("one", "two", "three");
print $x[ 0 ], "\n"; # "one"
print $x[ 1 ], "\n"; # "two"
print $x[ 2 ], "\n"; # "three"
配列のsigilが「@
」から「$
」に変化するのがわかりにくいかもしれませんが、これはどのような変数にアクセスしているのか考えるとわかりやすいかもしれません。
配列として全体に対して操作する場合は「@
」を使用します。
join(" | ", @list);
配列の要素一個一個はスカラーですので、要素一個一個にアクセスする場合は「$
」を使用します。
print $list[ 0 ];
ハッシュは任意の文字列から任意のスカラーをマッピングします。
my %x = (
"key1" => "value1"
);
XXX - 時間がなかった。後で
XXX - 時間がなかった。後で
Last modified: $Date$