我尝试使用Google搜索和搜索,但正如您可以想象的那样,在中查找并不能为我提供 以外的任何有用信息 Perl 。
我遇到了这个剧本:
($script,$xpaths,$treebanks)=@ARGV;
open(IN,$xpaths);
while (<IN>) {
# Some code
}
但我不明白IN的情况。这是什么意思?我理解这是否是一个愚蠢的问题,但正如我所指出的那样,搜索尝试没有任何结果。
答案 0 :(得分:7)
IN
没有特殊含义,它只是一个字符序列,很像变量名。它是*IN
的缩写,是一个typeglob(或简称为glob)。你不必过分担心知道什么是知道它可以存储文件句柄。
当您说open(IN,$xpaths);
时,您将其定义为文件句柄的名称,然后在您说while (<IN>)
时读取它。
较旧的风格是使用裸字作为文件句柄,如
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
创建的文件句柄