第 2 章: Perl の変数

Perl の変数

型の種類

Perl 変数名の先頭にプレフィクスと呼ばれる記号をつけることによって,

これが変数であると認識する:

$ -> スカラ変数
@ -> 配列変数
% -> 連想配列 (ハッシュ, Hash)
& -> サブルーチン

それぞれ独特のネームスペースよ呼ばれるものを持っているので, スカラ, 配列, 連想配列で同じ名前を使っても, 名前の衝突を心配する必要はない.

変数名

変数名でつけられる名称は以下のようになる:

$abc  # 正
$a123 # 正
$_abc # 正
$123  # 誤

注意:

大文字, 小文字は区別して扱われる.

スカラ変数

スカラ変数は, 数値, 文字列値, リファレンスなどの様々な値を一つ だけ保持することができる.

プレフィクス ($) が付き, 変数の値は数値, 文字列値の区別なく, 必要 に応じて自動的に変換される. 例えば文字列に数値を代入すれば数値 変数としても振る舞うことが可能である. 代入もされていない状態の 変数は数値として扱われると [0] として扱われ, 文字として扱われると [“” 空白文字] として扱われる:

$a = 10;      # 数値を代入
$b = "20";    # 文字列を代入
$c = $a + $b; # 数値と文字列を加算
print $c;     # 30 を出力

配列

配列とは 複数のスカラ値の集合を表す. プレフィクス “@” が付き, 個個のスカラ値へアクセスするには “0” から始まる添字を指定する この時の添字指定は “[]” を用い, 個個の要素指定はプレフィクス “$”

で行う:

# 配列の初期化
@week = ('sum', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');

# 要素への参照 "mon" が表示される
print $week[1];

ここでプレフィクスが二つ出てきているのに気がついたと思う. 最初 の配列の初期化は配列全部に対するおとなのでプレフィクス “@” を使 用する. 配列一つ一つの要素はスカラ変数となり, スカラへのアクセス なのでプレフィクス “$” を使用する.

ハッシュ (連想配列)

ハッシュを簡単に表現すると, 配列変数の添字がキーと呼ばれる文字列 となったものになる. データはキーと対応して保持される. プレフィクス “%” がつき, 個個のスカラ値へアクセスするには変数名にキーをつける. この時のキーの指定は “{}” を用い, 個個の要素指定は配列同様プレフィクス “$” で 行う:

# ハッシュの初期化
%week = ('sum', '始まり', 'wed', '中日', 'fri', '週末');

# 要素への参照 "週末" が表示される
print $week{fri};

型グロブ部

型グロブとは, 同じ識別子 (プレフィクス以降) を持つあらゆる値を 表現するワイルドカードのようなものになる.

スコープ (可視範囲)

特殊変数 $_

エスケープシーケンス