変数

 Perlの場合、他のプログラミング言語のように一々変数の宣言をしなくても構いません。変数のサイズや型(VBのintegerとかstringとか言うやつ)は、変数に値を格納した時点で自動的に設定されます。

変数のデータ型

 Perlで使えるデータ型は以下の3つです。この変数の型の後ろに名前(識別子)を付けて使います。

変数の型

データ型

内容

$ スカラー変数 数値、文字列など値を1つだけ記憶できる変数
@ 配列変数 複数の値を順序付けて記憶できる変数
% 連想配列(又はハッシュ変数) 配列の添え字にキー(文字列)を使う事ができ、値を順序付けすることなく記憶できる配列変数

変数の名前の付け方には、以下のようなルールがあります。

$、@、%の次の文字は、英文字またはアンダースコア「_」で始まる。
英文字、数字、アンダースコアを使える。
文字数の指定、制限はない。
大文字と小文字は区別される。

「$の後ろに数字」と言う組み合わせは、予約語になっているので使う事は出来ません。

スカラー変数

 「スカラー変数」は、1つの変数(文字列、数値など)を格納する事が出来ます。実際に使う時は、出来るだけ分かりやすい名前を付けてやるようにしましょう。例えば、

$amount = 50; $datafile = 'access.txt';

などです。又、初期化されていない変数(まだ値が代入されていないもの)は、周囲の状況から数字か文字列かを判断され、""(空文字)か0が代入されます。

配列変数

 配列変数とは、スカラー型の変数を複数個並べたものです。ここの要素にアクセスするには「添え字(インデックス)」を用います。添え字とは配列の何番目かを表す数値で、C言語などと同様「0」から始まります。具体的な書き方は以下のようになります。

@list = (10, 20, 30); @list = ('東京', '名古屋', '大阪');

又、リスト構成演算子..」(ピリオド2つ)を使って、以下のように途中のデータを省略する事も出来ます。

@list = (1 .. 5); ・・・(1, 2, 3, 4, 5)と同じ。

 配列変数の個々の要素を参照するには、「$」と「変数の名前」と「キー」を用います。これは、取り出される値がスカラー型である為です。例えば、次のようになります。

$address[3]; ・・・[0]、[1]、[2]、[3]で4番目に当たる。

*注意・・・配列変数の個々の要素の参照については、参考にしている書物によっては「@」を付けたままの記述になっているものもあります。今の僕の技術レベルではどちらが正しいのか判断がつきません。どうかご容赦下さい。

連想配列(ハッシュ変数)

 連想配列とは、「キー」(配列の添え字)と「値」の組をセットにした、順序付けされていない配列の事です。連想配列の具体的な書き方は以下のようになります。

%address = ('田中', '東京', '鈴木', '大阪');

このように記述すると、2つずつ「キー」と「値」の組となります。しかし、これではそれぞれの対応関係が余り明確ではありません。そこで、対応関係を分かりやすくする為に、「=>」を使って以下のようにも書けます。

%address = ('田中' => '東京', '鈴木' => '大阪');

又、連想配列の個々の要素を参照するには、「$」と「連想配列の名前」と「キー」を用います。これは、取り出される値がスカラー型である為です。例えば、次のようになります。

$address{'田中'}; ・・・「田中」と言うキーの値「東京」を示す。

尚、値を元にキーを取り出す事は出来ませんのでご注意下さい。

特殊変数

 上記以外にも、システムであらかじめ予約されている特殊変数があります。

変数

内容

$! システムコール時に発生したエラー番号
$. ファイル読み込み時の現在の行番号
$_ 各処理時のデフォルトの値
$/ 入力レコードの区切り文字
$, 出力フィールドの区切り文字
$" ダブルクォーテーション内の配列展開の区切り文字
$\ printの最後に付く文字
$; 多次元配列の為の区切り文字
$数値 直前のパターンマッチの各括弧に対する文字列

Perlの基本 前へ

HOME

次へ 演算子