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がいきなり登場しているのでエラー