[ perl ] executer un module dans un environemment protégé

executer un module dans un environemment protégé [ perl ] - Programmation

Marsh Posté le 05-04-2002 à 12:30:48    

Salut,
 
Est ce que vous sauriez comment executer un module perl de telle maniere que les eventuels "die" inclus dans ce module ne tuent pas mon script par la meme occasion?


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 05-04-2002 à 12:30:48   

Reply

Marsh Posté le 05-04-2002 à 14:53:54    

sihal_again a écrit a écrit :

Salut,
 
Est ce que vous sauriez comment executer un module perl de telle maniere que les eventuels "die" inclus dans ce module ne tuent pas mon script par la meme occasion?  




Tu veux exécuter un module perl ? c-a-d ???
 
Tu parles d'un script Perl lancé depuis le tien ?
 
Si tu veux que ton programme conserve la main, il faut de toutes façons lancer le second script via une commande system "mon autre script";
 
si tu fais exec "mon autre script"; ton programme lancant cette instruction perd la main et ne la retrouvera pas.
 
Maintenant, si tu as des die() dans le second programme et que tu passes par system, ça ne tuera pas ton programme principal. Maintenant, encore faut-il que ton prog puisse récupérer les erreurs du second ...
 
M'enfin, tu m'embrouille avec ton histoire de module :p


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 05-04-2002 à 14:58:56    

non en fait j'inclue un mudule: ( use Mon_module::truc; )
mais a l'interieur des scripts de ce module il ya un die, qui fait mourrir le script ayant inclut le module . ce qui me  :fou: . donc je me demande comment faire pour que si ce module ai un pb quelquonque il meure trankill dans son coin sans tuer aussi l'appelant


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 05-04-2002 à 15:00:30    

Tiens, petit exemple d'un programme retournant qq chose à un programme qui l'a exécuté :
 
script2.pl :
    $toto = 1;
    if ($toto / 1) {
      print "non nul";
    } else {
      print "nul";
    }
 
script principal :
    $retour;
 
    $retour = `script2.pl`;
 
    if ($retour =~ /^non nul$/) {
       print "ok";
    else {
       print "pas ok";
       die();
    }
 
C'était juste un exemple tout bête d'exécution d'un second script avec récupération (et dans une seule instruction) de ce qu'il retourne


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 05-04-2002 à 15:03:22    

sihal_again a écrit a écrit :

non en fait j'inclue un mudule: ( use Mon_module::truc; )
mais a l'interieur des scripts de ce module il ya un die, qui fait mourrir le script ayant inclut le module . ce qui me  :fou: . donc je me demande comment faire pour que si ce module ai un pb quelquonque il meure trankill dans son coin sans tuer aussi l'appelant  




Arf ok, j'avais tout faux !
 
ben mets en commentaire le die() du module et remplace-le par un warn()
 
ça t'affichera l'erreur constatée en tant qu'avertissement et ça ne tuera pas ton programme
 
maintenant, quand on met du die() quelque part, c'est que l'on veut sécuriser les traitements qui se déroulent après ... A faire en étant sûr de ton coup


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 05-04-2002 à 15:38:31    

deja , merci pour tes reponses mais.......
j'y avais deja pensé, mais je ne veux pas modifier le script du module, je veux le laisser en l'etat! donc il faut trouver un moyen de bypasser le die ... et je ne sais pas comment, et j'ai pas le temsp de lire les 700 pages du Camel.


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 05-04-2002 à 15:41:50    

sihal_again a écrit a écrit :

deja , merci pour tes reponses mais.......
j'y avais deja pensé, mais je ne veux pas modifier le script du module, je veux le laisser en l'etat! donc il faut trouver un moyen de bypasser le die ... et je ne sais pas comment, et j'ai pas le temsp de lire les 700 pages du Camel.  



arf, alors là je sais pas, sorry


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 05-04-2002 à 15:53:22    

ben tant pis. je vais chercher jusque mort s'ensuive


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 05-04-2002 à 17:08:15    

up


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 09:39:14    

up personne ne sait? ya po de perlistes ici?


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 09:39:14   

Reply

Marsh Posté le 08-04-2002 à 09:49:33    

sihal_again a écrit a écrit :

up personne ne sait? ya po de perlistes ici?  



ben si, moi :p
je crois que tu ferais bien de t'inscrire au mailing des Paris Perl's Mongueurs, tu aurais une réponse de mecs qui se la touchent super bien en Perl (sérieux) :
http://paris.mongueurs.net/
Si tu veux vraiment une réponse précise et rapide, inscrit-toi chez eux, y sont formidables


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 08-04-2002 à 10:16:58    

oki j'y vais de ce pas


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 11:54:27    

bon j'ai deux solutions a ce problème
 soit :
use sigtrap qw(die  normal-signals error-signals)  
supposé "trapper" les erreurs mais j'ai pas testé,
sinon un truc qui marche:
eval {
  ...
  die "fatal error";
};
if ($@) {
  # $@ contient "fatal error"
}
valavala


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 12:19:09    

sihal_again a écrit a écrit :

bon j'ai deux solutions a ce problème
 soit :
use sigtrap qw(die  normal-signals error-signals)  
supposé "trapper" les erreurs mais j'ai pas testé,
sinon un truc qui marche:
eval {
  ...
  die "fatal error";
};
if ($@) {
  # $@ contient "fatal error"
}
valavala  



je sais, j'ai vu la réponse dans la mailing ;)


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 08-04-2002 à 12:48:49    

lol c vraix :)
bon ben au cas ou on serais plus de 2 perlistes sur HW LOL


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 12:50:21    

sihal_again a écrit a écrit :

lol c vraix :)
bon ben au cas ou on serais plus de 2 perlistes sur HW LOL  



j'ai des doutes, z'aiment po Perl ici :lol:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 08-04-2002 à 12:54:03    

ben moi j'aime bien. je prefere php pour editer des pages web mais pour bidouiller des trucs sur serveur perl c royal. m'enfin question de gout  :jap:


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Marsh Posté le 08-04-2002 à 12:55:28    

sihal_again a écrit a écrit :

ben moi j'aime bien. je prefere php pour editer des pages web mais pour bidouiller des trucs sur serveur perl c royal. m'enfin question de gout  :jap:  



Je bosse avec des bases de données et je passe bcp de temps à scanner des chaines de caractères, pour ce cas de figure Perl est top moumoute


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 08-04-2002 à 13:01:48    

yes regexp rulez lol
j'ai encore du mal mais c vraix que c top pratique


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed