Perlについての質問箱 3箱目
■ このスレッドは過去ログ倉庫に格納されています
0069デフォルトの名無しさん
NGNGサブルーチン内ローカルサブルーチン定義が必要な場合、
Perlでは無名サブルーチン定義にしないとだめです。
>>64の下の例では、sub_a、sub_b は思い切りグローバルなんだわ(^^;
つまり“一般常識として”内部関数に直接触らない自主規制は可能だが、
インタプリンタ実行レベルでは規制されていない。
完全にローカルなサブルーチンを作成使用するには、こうするしかない。
sub hoge{
my $foo;
my $sub_a = sub { $foo; };
my $sub_b = sub { $foo; };
&$sub_a();
&$sub_b();
}
#このサブルーチンリファレンスを定義ブロック外に
#漏らすと、$foo はクロージャ変数(不揮発領域)になる。
■ このスレッドは過去ログ倉庫に格納されています