为什么文件句柄不需要Perl中的sigil?

在Perl中,filehandle是一种数据类型,我希望这种类型的变量有一些sigil前缀.但是,以下代码(第二次打开)表明情况并非如此

open my $fileHandle, '>', "out.txt";
open FH, '>', "out2.txt";

我发现第二种形式令人困惑/不一致.允许第二种形式的原因是什么?

第二种形式是允许的,因为它是原始形式.您以前只能通过包含它们的glob的名称来引用文件句柄.现在,文件句柄可以是glob的名称,也可以是对文件句柄对象或文件句柄对象的引用所包含的glob的引用.后两者可以存储在标量中(因此可以在词法范围内).

您应该避免在新代码中使用globs作为文件句柄.

相关文章
相关标签/搜索