#!/usr/local/bin/perl
sub trial
{
open (LOGFILE, 'C:\Users\out.txt');
trial();
}
trial();
请忽略它将进入无限循环的警告。
文件句柄
LOGFILE
在方法中是局部还是私有的?
如果不是,我该如何使其成为私有/局部的?
我知道my ,但我不知道如何在文件句柄上使用它。#!/usr/local/bin/perl
sub trial
{
open (LOGFILE, 'C:\Users\out.txt');
trial();
}
trial();
LOGFILE
在方法中是局部还是私有的?
如果不是,我该如何使其成为私有/局部的?
我知道my ,但我不知道如何在文件句柄上使用它。这些文件句柄是全局的,因为它们是typeglobs。有时这可能会导致非常糟糕的意外,因为您可能会意外地覆盖在某个模块中定义的文件句柄。
如果您想要词法作用域的文件句柄,请像这样使用my
进行定义:
open my $fh, '<', 'C:\Users\out.txt';
另请参阅:
词法文件句柄只是标准的my
标量。请参阅open函数的perldoc中的示例。
open (my $logfile, 'C:\Users\out.txt');
open
函数形式:open (my $logfile, '<', 'C:\Users\out.txt');