#!/usr/local/bin/perl
sub trial
{
open (LOGFILE, 'C:\Users\out.txt');
trial();
}
trial();
请忽略它会进入无限循环。
文件句柄LOGFILE
是本地方法还是私有方法?
如果不是,我该如何将其设为私有/本地?
我知道我的。但我不知道如何在文件句柄上使用它。
答案 0 :(得分:10)
这些文件句柄是全局的,因为它们是typeglobs。这有时会导致非常糟糕的意外,因为您可能会意外地覆盖您正在使用的某个模块内部定义的文件句柄。
如果您需要词汇文件句柄,请使用my
定义它们:
open my $fh, '<', 'C:\Users\out.txt';
另见:
答案 1 :(得分:4)
词法文件句柄只是标准的my
标量。请参阅the perldoc for open
中的示例。
open (my $logfile, 'C:\Users\out.txt');
一般来说,open
的三个参数形式也是首选:
open (my $logfile, '<', 'C:\Users\out.txt');