ne pas faire planter mon script

ne pas faire planter mon script - Perl - Programmation

Marsh Posté le 01-04-2008 à 14:48:44    

Salut,
 
J'ai un script qui est censer tourné en boucle à l'infini
je voudrais faire quelquechose dans mon script (ecrire dans un fichier)
mais je ne voudrais pas que si je n'arrive pas ecrire ou ouvrir le fichier mon script initial plante;
 
Existerait il en perl une fonction ou quelquechose dans laquel je pourrai encapsuler ce bout de code pour qu'il ne fasse pas planter mon script si jamais il ne fonctionne pas;
 
Merci

Reply

Marsh Posté le 01-04-2008 à 14:48:44   

Reply

Marsh Posté le 01-04-2008 à 16:48:30    

Tester si le fichier existe et si tu peux écrire dedans avant de faire des opérations dessus ?
 
-e  File or directory name exists
-w  File or directory is writable by this (effective) user or group

Reply

Marsh Posté le 01-04-2008 à 16:58:29    

mais si jamais le test plante, cela va faire planter mon script principal
 
il existe pas un truc en perl pour le rendre independant;
 
PS : quand je disai ouvrir un fichier c'etait un exemple

Reply

Marsh Posté le 01-04-2008 à 17:29:17    

alors avec eval{}

Reply

Marsh Posté le 16-04-2008 à 17:26:03    

donny3 a écrit :

mais si jamais le test plante, cela va faire planter mon script principal
 
il existe pas un truc en perl pour le rendre independant;
 
PS : quand je disai ouvrir un fichier c'etait un exemple


 
non: un test comme
if (-e $filename and -f _ and -r _)  
va tester si $filename  existe, si c'est un fichier (et pas un repertoire ou autre), et s'il est lisible.
Si une des conditions n'est pas remplie, le test aura comme valeur 0 (ou false, je ne sais pas) et si les 3 sont verifiées, il aura comme valeur 1 (ou true). A aucun moment les tests ne vont faire planter quoi que ce soit, ils sont justement la pour tester avant de realiser une operation d'entrée sortie (qui elle pourrait faire planter..)
Si tu as perl 5.10, if (-e $filename and -f _ and -r _)  s'écrit plus simplement comme if (-r -f -e $filename)  attention, l'ordre est inversé. Cette ecriture plus simple ne passe pas avec perl 5.8 (et sans doute 5.9) comme je l'ai appris a mes depends ce dimanche.
A+,


Message édité par gilou le 16-04-2008 à 17:27:21

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-04-2008 à 18:04:18    

d'après son PS il cherche une combine plus générale pour traiter des exceptions.

Reply

Marsh Posté le 16-04-2008 à 18:27:58    

Je voulais juste corriger son affirmation vis a vis des tests de fichier.  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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