Есть ли способ получить номер строки (и, возможно, имя файла), где был закодирован токен __DATA__? Или каким-либо другим способом узнать фактический номер строки в исходном исходном файле, откуда взялась строка данных, прочитанная из дескриптора файла DATA?
Обратите внимание, что $.
отсчитывает от 1 при чтении из DATA
дескриптора DATA
. Так что, если номер __DATA__
токена __DATA__
был добавлен в $.
это было бы то, что я ищу.
Например:
#!/usr/bin/perl
while (<DATA>) {
my $n = $. + WHAT??;
die "Invalid data at line $n\n" if /bad/;
}
__DATA__
something good
something bad
Я хочу, чтобы это означало "Неверные данные в строке 9", а не "строка 2" (это то, что вы получаете, если $.
Используется само по себе).