O que a variável especial $ @ significa em Perl?
Pergunta
Eu estou tentando entender o seguinte pedaço de código:
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
Solução
Se houver um erro de sintaxe ou de tempo de execução erro, ou uma declaração de "die" é executado, um valor indefinido é retornado por "eval", e US $ @ está definido para a mensagem de erro. Se houver nenhuma foi erro, $ @ é garantido para ser um nulo corda.
Veja também perldoc perlvar
.
Outras dicas
$@
é uma variável mágica que contém a mensagem de erro do último comando eval
, se houver.
O caso loop deve ser precedida de eval para que ela seja capaz de interceptar $ @.
Durante uma eval (), $ @ é sempre definido em caso de falha e cancelado em caso de sucesso.
No caso whr código dentro eval () não compilar, $ @ está definido para o erro de compilação.