Pergunta

É possível obter o número da linha fonte de corrente em Perl? O equivalente em C ++ é __LINE__.

Foi útil?

Solução

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

ou

warn("foo");

Outras dicas

O literal __LINE__ está documentado no seção de literais especiais o página homem perldata .

Note que há uma pegadinha com

perl -e'warn ( "foo") '

foo na linha -e 1.

Se ele termina com uma nova linha que não imprimir o número de linha

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

foo

Isso está documentado no "perldoc -f die", mas talvez seja fácil perder no "perldoc -f avisar" referência de seção para morrer ...

Isso mostra a linha onde você está, e também a "pilha" (lista de linhas dos programas de chamada (scripts / módulos / etc) que levam para o lugar que você está agora)

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

"O uso da carpa" e jogar com as várias rotinas e você também terá uma pilha - não tenho certeza se este caminho é melhor ou pior do que o método "chamador" sugerida pelo CND. Eu tenho usado as variáveis ??de linha e de arquivo (e, provavelmente, outras variáveis ??semelhantes) em C e Perl para mostrar onde eu tenho o código e outras informações quando a depuração, mas vimos pouco valor fora de um ambiente de depuração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top