2009-07-30 11 views
1

Je suis en train de comprendre le morceau de code suivant:

sub foo { 
    ... 
    if ([email protected]) { 
     ... 
     die [email protected]; 
    } 
} 
+3

Un conseil: pour les variables ondulées qui ressemblent à de la ponctuation pure, visitez 'perldoc perlvar'. – Telemachus

+0

duplication possible de http://stackoverflow.com/questions/2578671/where-can-i-find-information-about-perls-special-variables –

Répondre

13

perldoc -f eval:

S'il y a une erreur de syntaxe ou une erreur d'exécution , ou une déclaration « mourir » est exécuté, une valeur indéfinie est renvoyée par "eval" et $ @ est définie sur le message d'erreur. S'il n'y avait pas d'erreur , $ @ est garanti être une chaîne nulle .

Voir également perldoc perlvar.

3

[email protected] est une variable magique contenant le message d'erreur de la dernière commande eval, le cas échéant.

+0

Non *** juste *** erreurs de syntaxe. –

0

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

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

Si le code dans eval() ne compile pas, $ @ est mis à l'erreur de compilation.