open my $fp, '<', $file or die $!;
while (<$fp>) {
my $line = $_;
if ($line =~ /$regex/) {
# How do I find out which line number this match happened at?
}
}
close $fp;
答案 0 :(得分:43)
使用$.
(请参阅perldoc perlvar
)。
答案 1 :(得分:13)
答案 2 :(得分:0)
Don't use $.
,也不$_
或任何全局变量。改用它:
while(my $line = <FILE>) {
print $line unless ${\*FILE}->input_line_number == 1;
}
要避免这种情况以及其他许多Perl陷阱,可以在Atom或VSCode软件包(如linter-perl)上使用。停止制作Perl a write-only language!