Perlについての質問箱 22箱目
■ このスレッドは過去ログ倉庫に格納されています
0039デフォルトの名無しさん
2006/01/30(月) 18:23:30-----------------
my $tmp;
sub hoge {
my ($filename) = @_;
local *FILE;
open FILE, "+>> $filename";
�@*TMP = *FILE;
�A$tmp = *FILE;
}
-----------------
この例での�@と�Aの違いとはなんなのでしょうか。
ttp://www.site-cooler.com/kwl/perl/2.htm#2-7
↑によると、�@はアクセス名を変えるだけ?のリファレンス?になっているように読めます。
localとはグローバル変数の内容をサブルーチン(下層含む)の中限定で変更する物と
このスレのリンクにあるperl5.8.xのドキュメントに書いてあったのですが、
その定義ならば仮に�@のリファレンスに代入したとしても、このサブルーチンが終わった時点で
ここで作ったファイルハンドルにアクセスできなくなるような気がします。
localで設定したハンドルにサブルーチンを抜けてからもアクセスしたいのですが。。
■ このスレッドは過去ログ倉庫に格納されています