Pregunta

¿Es posible obtener el número de línea de la fuente de corriente en Perl? El equivalente en C ++ es __LINE__.

¿Fue útil?

Solución

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

o

warn("foo");

Otros consejos

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top