这似乎有点补救。
我可以搜索文件,我可以打印一行,但对于我的生活,我无法弄清楚如何将两者放在一起。
答案 0 :(得分:6)
每次读一行时只需递增一个计数器。
my $line;
while (<>) {
++$line;
print "$line: $_" if /foo/;
}
那就是说,Perl已经为你做到了。
while (<>) {
print "$.: $_" if /foo/;
}
如果您想支持多个文件,
while (<>) {
print "$ARGV:$.: $_" if /foo/;
close(ARGV) if eof; # Reset line counter for each file.
}
(eof
上缺乏parens意义重大。)