Last Update 2008/05/18
変数を局所化します。
myとは違い、宣言時点で宣言前の値を保存し、局所化範囲を抜ける時に値を元に戻す操作を行います。
従って、宣言を行った変数がグローバル変数だった場合は、宣言が有効な間、変数の値自体が変化します。
myとは違い、宣言時点で宣言前の値を保存し、局所化範囲を抜ける時に値を元に戻す操作を行います。
従って、宣言を行った変数がグローバル変数だった場合は、宣言が有効な間、変数の値自体が変化します。
local 変数1
変数1
宣言対象の変数(リスト値も可)
(例)
$s_test = "test";
print "グローバルな\$s_test = " . $s_test . "\n";
&sub_test();
print "サブルーチンを抜けた後の\$s_test = " . $s_test . "\n";
sub sub_test
{
&sub_sub_test_1();
local $s_test = "aaa";
print "sub_test内で宣言後の\$s_test = " . $s_test . "\n";
&sub_sub_test_2();
}
sub sub_sub_test_1
{
print "local宣言前の呼び出しサブルーチン内の\$s_test = " . $s_test . "\n";
}
sub sub_sub_test_2
{
print "local宣言後の呼び出しサブルーチン内の\$s_test = " . $s_test . "\n";
}
実行結果
グローバルな$s_test = test
local宣言前の呼び出しサブルーチン内の$s_test = test
sub_test内で宣言後の$s_test = aaa
local宣言後の呼び出しサブルーチン内の$s_test = aaa
サブルーチンを抜けた後の$s_test = test