Jim*_*Jim 4 perl diamond-operator
我在文件中有以下代码perl_script.pl:
while (my $line = <>) {
chomp $line;
// etc.
}.
Run Code Online (Sandbox Code Playgroud)
我用超过 1 个文件调用脚本,例如
perl perl_script.pl file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法知道是否$line开始从file2.txt等读取?
zdi*_*dim 12
读取时包含当前文件的名称
<>
并且您可以在每一行上保存名称和测试以查看它是否更改,并在更改时更新。
如果它真的只是为了获取特定文件,正如问题似乎所说的那样,那么它会更容易,因为您还可以使用@ARGV包含命令行参数的 来直接测试所需的名称。
另一种选择是使用eof(不带括号的形式!)来测试文件结尾,这样您就会知道下一个文件将在下一次迭代中出现——因此您还需要某种标志。
对此的一个变体是在每个文件的末尾显式关闭文件句柄,以便$.为每个新文件重置,通常不会发生在<>, 然后$. == 1是新打开文件的第一行
while (<>) {
if ($. == 1) { say "new file: $ARGV" }
}
continue {
close ARGV if eof;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |