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

Как я могу напечатать номер строки источника в Perl?

Можно ли получить текущий номер строки источника в Perl? Эквивалент в С++ равен __LINE__.

4b9b3361

Ответ 1

print "File: ", __FILE__, " Line: ", __LINE__, "\n";

или

warn("foo");

Ответ 3

Обратите внимание на то, что у вас есть

perl -e'warn ( "foo" ) '

foo at -e строка 1.

если он заканчивается символом новой строки, он не будет печатать номер строки

perl -e'warn ( "foo\n" ) '

Foo

Это описано в "perldoc -f die", но, возможно, легко пропустить в разделе "perldoc -f warn" ссылку на die...

Ответ 4

Отпечатает строку, в которой вы находитесь, а также "стек" (список строк из вызывающих программ (скрипты/модули/etc), которые ведут к тому месту, где вы сейчас находитесь)

while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }

Ответ 5

"используйте Carp" и играйте с различными процедурами, и вы также получите стек - не уверен, что этот способ лучше или хуже, чем метод "вызывающего", предложенный cnd. Я использовал переменные LINE и FILE (и, возможно, другие аналогичные переменные) в C и Perl, чтобы показать, где я попал в код и другую информацию при отладке, но не имел большого значения вне среды отладки.