在Perl中,打开函数的大写TEXT的目的是什么?它是模块还是内置功能?
这是代码:
#!/usr/bin/perl -w
use v5.10.0;
use warnings;
my $filename = "<file.txt";
open(TEXT, $filename) or die "Can't open file.\n";
Run Code Online (Sandbox Code Playgroud)
TEXT就是所谓的全局文件句柄.它可以在程序运行时随时随地在任何代码中使用.
最佳实践说使用open()的三参数形式以及词法文件句柄.在以下情况中,词法文件句柄($fh)仅限于其自己的范围,并在该范围完成时关闭:
use warnings;
use strict;
{
open my $fh, '<', 'test.txt' or die $!;
while (<$fh>){
chomp;
print "$_\n";
}
}
Run Code Online (Sandbox Code Playgroud)
如果你在那里使用了一个全局文件句柄(TEXT),那么在块完成之后就可以访问它,这可能会让代码的其他部分远远地破坏东西.
使用3-arg open和词汇文件句柄确保了代码库的严格限制.