my, localの件

my と local のサンプル
http://d.hatena.ne.jp/amachang/20080110/1199946810

やっぱりこの人はすごいって思う。わからないことがあると何でも体当たりでどんどん吸収していく。
#ちょっと仕事で詰まったくらいで一年近くつぶれまくっていた自分とすごい違いだと思います・・・

localの場合、前の値を保存してから上書き、というイメージで良いんでしょうか?
なので、

sub bar {
   print "$foo\n"
}

do {  # ... (1)
   local $foo = 1;
   do { print "$foo\n" }; # 1
   bar;                   # 1
   sub { print "$foo\n" } # 0
}->();

do {  # ... (1)
   my $foo = 1;
   do { print "$foo\n" }; # 1
   bar;                   # 0
   sub { print "$foo\n" } # 1
}->();

としても面白いかも。