-
perl et code de retour
salut,
Sous unix lorsque l'on réalise un script on a la possibilité de tester le code de retour;
si on obtiens $? egal à 0 alors notre commande c'est bien executé
et je voulais savoir si sous perl on procedait de la meme façon
c'est à dire que le code de retour est 0 si la commande c'est bien executer ?
Merci :P
-
ca depend, retour de quoi?
le retour d'une focntion tu peux le tester directement (et regarder sa signification dans la doc de l'API d'ou elle provient), et tu pourra eventuellement tester $! pour voir une erreur system. Si tu veux capter une erreur tu peux utiliser eval {} et tester $@ (equivalent de try/catch).
-
En général, les fonction internes à Perl retournent plutôt une valeur différente de 0 en cas de succès. Exemple simple, la fonction open :
Code:
open (FIC, "<mon_fic.txt") or die "Problème d'ouverture : $!"
Si open() retourne 0 (ou en tout cas une valauer fausse), die est effectué, donc si open retourne une valeur fausse, c'est qu'il y a une erreur...
-
perldoc perlvar te donne la signification de $?: elle est la meme qu'en shell, pour les appels à system, wait, ...
Donc, tu peux tester la valeur de retour d'un programme externe appellé par system, avec $?