Domanda

Sto cercando di capire il seguente codice:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
È stato utile?

Soluzione

perldoc -f eval :

  

Se si verifica un errore di sintassi o runtime   errore o un "die" affermazione è   eseguito, un valore indefinito è   restituito da " eval " ;, e $ @ è impostato su   il messaggio di errore. Se non ci fosse   errore, $ @ è garantito per essere nullo   stringa.

Vedi anche perldoc perlvar .

Altri suggerimenti

$ @ è una variabile magica che contiene il messaggio di errore dell'ultimo comando eval , se presente.

Il ciclo if dovrebbe essere preceduto da eval per poter intercettare $ @.

Durante un eval (), $ @ è sempre impostato su fallimento e cancellato su successo.

Nel caso in cui il codice all'interno di eval () non sia stato compilato, $ @ è impostato sull'errore di compilazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top