Question

J'essaie de comprendre le code suivant:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
Était-ce utile?

La solution

perldoc -f eval :

  

En cas d'erreur de syntaxe ou d'exécution   erreur, ou un "die" déclaration est   exécuté, une valeur indéfinie est   renvoyé par "eval", et $ @ est défini sur   le message d'erreur. S'il n'y avait pas   error, $ @ est garanti nul   chaîne.

Voir aussi perldoc perlvar .

Autres conseils

$ @ est une variable magique contenant le message d'erreur de la dernière commande eval , le cas échéant.

La boucle if doit être précédée de eval pour pouvoir intercepter $ @.

Lors d'un eval (), $ @ est toujours défini en cas d'échec et effacé en cas de succès.

Dans le cas où le code à l'intérieur de eval () n'a pas été compilé, $ @ est défini sur l'erreur de compilation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top