すっきりした><

id:tokuhirom に Perl の local と my と our を凄く簡潔に分かり易い言葉で教えてもらいました。

our 名前をスコープに限定. local 値をスコープに限定. my 名前と値の両方をスコープに限定


追記
元ネタは早川さんだそうです><
→PowerPoint プレゼンテーション
とくひろむーさん、早川さん、ありがとうございます。

で、ついでに実践してみました。

$foo = "global";

sub func{
    print "func $foo\n";
}

sub test1{
    my $foo = "my";
    func();
}
sub test2{
    local $foo = "local";
    func();
}

test1();
print "after my $foo\n";
test2();
print "after local $foo\n";

my $bar = "my";

sub test3{
    our $bar .="our";
    print "in our $bar\n";
}

print "$bar\n";
test3();
print "$bar\n";
test3();
print "$bar\n";
test3();


結果

func global
after my global
func local
after local global
my
in our our
my
in our ourour
my
in our ourourour

すっげーーーすっきりしました。
ありがとうございます♪