最新の「新着記事」はここから New!
2008-06-12
サブルーチンの定義はスコープの影響を受けない
サブルーチンの定義は、スコープの影響を受けません。
{
sub func {
return 2;
}
}
my $ret = func();
サブルーチンは、スコープの影響を受けません。一見すると、fucnは、スコープの外では、見えないものと思ってしまいがちですが、そうなりません。
サブルーチンの定義は、コンパイル時に、シンボルテーブルというものに登録されます。シンボルテーブルは、プログラムのどこからでも参照することができるため、サブルーチンも、プログラムのどこからでも参照できます。( スコープの影響を受けないということ )
サンプル
サブルーチンの定義はスコープの影響を受けないことを理解するサンプルです。
use strict; use warnings; # サブルーチンの定義とスコープ # サブルーチンは、スコープの影響を受けない。 { sub func { return 2; } } print "1: サブルーチンの定義は、スコープの影響を受けない。\n"; my $ret = func(); print "\$ret は、$ret です。\n";


