Perl中IN的含义

时间:2016-02-17 11:47:38

标签: perl

我尝试使用Google搜索和搜索,但正如您可以想象的那样,在中查找并不能为我提供 以外的任何有用信息 Perl

我遇到了这个剧本:

($script,$xpaths,$treebanks)=@ARGV;

open(IN,$xpaths);
while (<IN>) {
    # Some code
}

但我不明白IN的情况。这是什么意思?我理解这是否是一个愚蠢的问题,但正如我所指出的那样,搜索尝试没有任何结果。

2 个答案:

答案 0 :(得分:7)

IN没有特殊含义,它只是一个字符序列,很像变量名。它是*IN的缩写,是一个typeglob(或简称为glob)。你不必过分担心知道什么是知道它可以存储文件句柄。

当您说open(IN,$xpaths);时,您将其定义为文件句柄的名称,然后在您说while (<IN>)时读取它。

另见the documentation for open

  

较旧的风格是使用裸字作为文件句柄,如

open(FH, "<", "input.txt")
   or die "cannot open < input.txt: $!";
     

然后您可以使用FH作为文件句柄,在关闭FH中等等。   请注意,它是一个全局变量,因此不建议使用此表单   新代码。

现代Perl将使用词法范围的变量,而使用open的三参数形式。

open(my $in, "<", $xpaths) or die $!;
while (<$in>) {

答案 1 :(得分:0)

IN是使用open

创建的文件句柄