■プライベート関数
myで宣言します。
myで宣言された変数や配列等は他のブロックにある同じ名前の変数や配列等とは別のものとして扱われます。
|
|
my $data;
my($data1, $data2);
複数指定する場合は必ずカッコで囲む。
囲まないと$data1のみに適用される。
|
|
my $data = 5;
my *FILEHANDLE;
|
|
sub sample {
$flag = 1;
$data = 100;
if ($flag) {
my $data = 10;
print "$data\n";
}
print $data;
}
|
|
上記のサブルーチンを実行すると
10
100
と表示されます。
このように$dataという同じ名前の変数があってもifブロック内の$dataと、その外での$dataは別の変数として扱われるようになります。
|
|
■ローカル関数
localで宣言します。
localで宣言された変数や配列等はそのブロック内とそこから呼び出される関数やサブルーチン内でのみ有効となります。
|
|
local $data;
local($data1, $data2);
複数指定する場合は必ずカッコで囲む。
囲まないと$data1のみに適用される。
|
|
local $data = 5;
local *FILEHANDLE;
|
|
□更新履歴
2007.04.22 全体的に内容を見直し
|
|
|