Noplay >>Développement


Niveau: Débutant
Licence de l’article: Free Documentation License

version imprimable

Intercepter le signal die

le samedi 25 juin 2005 par
Noplay

Le problème lorsque l’on développe du PERL sous Windows c’est que lors d’un die la console se referme. On peut bien sur lancer PERL via la console mais on n’y pense pas toujours.

C’est pour cela que j’ai décidé d’intercepter le signal die de PERL pour que lorsqu’une erreur intervient, le script attende que j’appuie sur une touche pour continuer.

Le code est très simple :

  1.  
  2. if ($^O eq "MSWin32")
  3. {
  4.     $SIG{__DIE__} = \&win_die;
  5. }
  6.  

Tous d’abord nous commençons par tester si on est sous Windows (sous Unix je lance forcement mon script dans une console). Si c’est le cas on associe le signal DIE à la fonction win_die.

Voici le code de la fonction win_die :

  1.  
  2. sub     win_die
  3. {
  4.     print "ERROR: ".$_[0];
  5.     print "Press enter to continue\n";
  6.     <STDIN>;
  7.     exit(1);
  8. }
  9.  

La première ligne permet d’afficher le message d’erreur de die qui est passé en premier paramètre de la fonction, puis à la ligne 3 on attend de lire un retour à la ligne sur l’entrée standard avant de quitter.


PS :

Merci à HiroshimaCC pour l’astuce.



Répondre à cet article

Un message, un commentaire ?

(Pour créer des paragraphes, laissez simplement des lignes vides.)

Lien hypertexte (optionnel)

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d'informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Qui êtes-vous ? (optionnel)



Webmaster Noplay