¿Qué significa la variable especial $ @ en Perl?
Pregunta
Estoy tratando de entender el siguiente fragmento de código:
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
Solución
Si hay un error de sintaxis o tiempo de ejecución error, o un " morir " declaración es ejecutado, un valor indefinido es devuelto por " eval " ;, y $ @ se establece en el mensaje de error Si no hubiera error, $ @ está garantizado para ser un nulo cuerda.
Consulte también perldoc perlvar
.
Otros consejos
$ @
es una variable mágica que contiene el mensaje de error del último comando eval
, si corresponde.
El bucle if debe ir precedido por eval para que pueda atrapar $ @.
Durante una evaluación (), $ @ siempre se establece en caso de fallo y se borra en caso de éxito.
En el caso de que el código dentro de eval () no se haya compilado, $ @ se establece en el error de compilación.