Pregunta

Estoy tratando de entender el siguiente fragmento de código:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
¿Fue útil?

Solución

perldoc -f eval :

  

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.

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