我试着用搜索引擎,并因此搜索,但你可以想像,寻找在不提供我比其他任何有用的信息在 Perl的.
我遇到了这个脚本:
($script,$xpaths,$treebanks)=@ARGV;
open(IN,$xpaths);
while (<IN>) {
# Some code
}
Run Code Online (Sandbox Code Playgroud)
但我不明白IN的情况如何.这是什么意思?我理解这是一个愚蠢的问题,但正如我所指出的那样,搜索尝试并没有带来任何成果.
IN没有特殊意义,它只是一个字符序列,很像一个变量名.它是*IN一个类型的简称(或简称为glob).你不必过分担心知道什么是知道它可以存储文件句柄.
你说的时候把它定义为文件句柄的名称,open(IN,$xpaths);然后在你说的时候读它while (<IN>).
另请参阅open文档:
较旧的样式是使用bareword作为文件句柄,如
Run Code Online (Sandbox Code Playgroud)open(FH, "<", "input.txt") or die "cannot open < input.txt: $!";然后你可以使用FH作为文件句柄,在FH中使用等等.请注意,它是一个全局变量,因此不建议在新代码中使用此表单.
现代Perl将使用词法范围的变量,而使用三参数形式的open.
open(my $in, "<", $xpaths) or die $!;
while (<$in>) {
Run Code Online (Sandbox Code Playgroud)