use strict; use warnings; sub foo{ my $x = "static"; sub bar{ print $x; } &bar(); } &foo(); Variable "$x" will not stay shared at tmp.pl line 7. むむ、当然参照できると思ったらできなかった。なぜだ? @miyagawa それはwarning なので参照はできてるはずですよ。staticってprintされてませんか? warning の意味は、2回目以降の呼び出しでは違う変数になるのでclosureではなくなるからです。see perldoc perldiag ありがとうございます!!警告に目を取られて表示されているのに気づいてませんでした。 tmp$ perl tmp.pl Variable "$x" will not stay shared at