Perl中IN的含义

Bra*_*roy -1 perl

我试着用搜索引擎,并因此搜索,但你可以想像,寻找不提供我比其他任何有用的信息 Perl的.

我遇到了这个脚本:

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

open(IN,$xpaths);
while (<IN>) {
    # Some code
}
Run Code Online (Sandbox Code Playgroud)

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

Que*_*tin 7

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

你说的时候把它定义为文件句柄的名称,open(IN,$xpaths);然后在你说的时候读它while (<IN>).


另请参阅open文档:

较旧的样式是使用bareword作为文件句柄,如

open(FH, "<", "input.txt")
   or die "cannot open < input.txt: $!";
Run Code Online (Sandbox Code Playgroud)

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

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

open(my $in, "<", $xpaths) or die $!;
while (<$in>) {
Run Code Online (Sandbox Code Playgroud)