Open函数中TEXT的Perl定义

Min*_*ist 1 perl text file

在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)

ste*_*ieb 8

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和词汇文件句柄确保了代码库的严格限制.