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;
使用する $.
(見る - perldoc perlvar
)。
OOインターフェースを介してそれを行うこともできます:
use IO::Handle;
# later on ...
my $n = $fp->input_line_number();
これは perldoc perlvar にもあります。
使用しない$.
、または$_
または任意のグローバル変数。代わりにこれを使用してください:
while(my $line = <FILE>) {
print $line unless ${\*FILE}->input_line_number == 1;
}
これおよび他の多くのPerlの落とし穴を回避するには、Atomまたは linter-Perl のようなVSCodeパッケージで使用できます。Perlの作成をやめる 書き込み専用言語 !