my
my EXPR
変数をスコープ(範囲)内だけで参照できるようにします。
また、use strict;と組み合わせて変数名のスペルミス防止などにも役立ちます。
サンプルプログラム
my $foo = 100;
if ($foo > 0) {
my $num = 1 / $foo; # $numはこのブロックの中のみ有効
print $num, "\n";
}
if ($foo % 2 == 0) {
my $num = $foo / 2; # $numはこのブロックの中のみ有効
print $num, "\n";
}
print $num, "\n"; # スコープの外なので表示されない
foreach my $i (1..10) {
print $i, "\n"; # $iはこのブロックの中のみ有効
}
print $i, "\n"; # スコープの外なので表示されない
use strict; # 安全でない構文を制限する my $mode = 100; print $moed, "\n"; # $moedがいきなり登場しているのでエラー
