Подтвердить что ты не робот

Как получить текущий номер строки файла с помощью Perl?

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;
4b9b3361

Ответ 2

Вы также можете сделать это через интерфейс OO:

use IO::Handle;
# later on ...
my $n = $fp->input_line_number();

Это находится в perldoc perlvar.

Ответ 3

Не используйте $. , ни $_ ни любая глобальная переменная. Используйте это вместо:

while(my $line = <FILE>) {
  print $line unless ${\*FILE}->input_line_number == 1;
}

Чтобы избежать этого и многих других ошибок Perl, вы можете использовать их в пакетах Atom или VSCode, таких как linter-perl.