Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment récupèrer dans une variable le résultat de l'ordre die ?

2 réponses
Avatar
hurlu.berlue
DIE ecrit sans STDERR
moi je voudrais récupèrer certaines de ces écritures ( de DIE ou de
Carp::cluck/croak/confess ) dans une variable. comment faire ?

est ce que je dois passe par un fichier : exemple
die "error occured" 2>&MY_FILE_HANDLE ; ????

est ce qu'il y a une autre manip ?

merci pour vos conseils

2 réponses

Avatar
dominix
hurluberlu wrote:
DIE ecrit sans STDERR
moi je voudrais récupèrer certaines de ces écritures ( de DIE ou de
Carp::cluck/croak/confess ) dans une variable. comment faire ?



il faut utiliser la fonction eval.
perldoc -f eval

--
dominix

Avatar
Samuel Mouniée
Bonjour,

hurluberlu wrote:
DIE ecrit sans STDERR
moi je voudrais récupèrer certaines de ces écritures ( de DIE ou de
Carp::cluck/croak/confess ) dans une variable. comment faire ?

est ce que je dois passe par un fichier : exemple
die "error occured" 2>&MY_FILE_HANDLE ; ????

est ce qu'il y a une autre manip ?

merci pour vos conseils



tu as deux possibilités qui se completent tres bien :

- "eval" qui permet de faire semblant d'avoir un interpreteur dans
l'interpreteur et donc si le second interpreteur plante, le premier
reprend la main et peut agir : c'est une des primitives de gestion
d'exception de perl.

- avec $SIG{__DIE__} et $SIG{__WARN__} qui permettent de capturer des
evenements et de traiter des messages.


begin{pub}

tu peux trouver sur le CPAN des modules de gestions d'exceptions ...
dont PException ( que j'ai fait ) et qui permet de faire ( d'une
certaine maniere ) de la reprise sur erreur lors d'un traitement.

end{pub}


.s'nuoM