Que signifie la variable spéciale $ @ en Perl?
Question
J'essaie de comprendre le code suivant:
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
La solution
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.