open(my $fh,'>',$path) || die $!; my_sub($fh);
my_sub()可以以某种方式从$ fh外推$路径吗?
解决方法
文件句柄甚至可能不连接到文件,而是连接到连接到子进程的标准输出的网络套接字或管道。
如果要将句柄与代码打开的路径相关联,请使用哈希和fileno
运算符,例如,
my %fileno2path; sub myopen { my($path) = @_; open my $fh,"<",$path or die "$0: open: $!"; $fileno2path{fileno $fh} = $path; $fh; } sub myclose { my($fh) = @_; delete $fileno2path{fileno $fh}; close $fh or warn "$0: close: $!"; } sub path { my($fh) = @_; $fileno2path{fileno $fh}; }