¿Cómo puedo imprimir el número de línea de la fuente en Perl?
-
21-08-2019 - |
Pregunta
¿Es posible obtener el número de línea de la fuente de corriente en Perl?
El equivalente en C ++ es __LINE__
.
Solución
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
o
warn("foo");
Otros consejos
El __LINE__ literal se documenta en el sección de la = "http://search.cpan.org/perldoc?perldata" rel = "noreferrer"> perldata página del manual .
Tenga en cuenta que hay una Gotcha con
Perl -e'warn ( "foo") '
foo en la línea -e 1.
si termina con un carácter de nueva línea que no imprimir el número de línea
Perl -e'warn ( "foo \ n") '
foo
Esto está documentado en "perldoc -f morir", pero tal vez es fácil pasar por alto en el "perldoc -f advertir" a la referencia de la sección a morir ...
Esto muestra la línea donde se encuentre, así como la "pila" (lista de las líneas de los programas de llamadas (scripts / etc / modules) que conducen al lugar donde están ahora)
while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
"utilizar la carpa" y jugar con las diversas rutinas y también se obtiene una pila - no estoy seguro si esta forma es mejor o peor que el método de "el que llama" sugerido por el CND. He utilizado las variables de línea y archivo (y probablemente otras variables similares) en C y Perl para mostrar donde llegué en el código y otra información al depurar, pero han visto poco valor fuera de un entorno de depuración.