ouvrir des fichiers en toute tranquilité

Le
mpg
Bonjour,

Quand on ouvre des fichiers, à moins d'être kamikaze, on teste si
l'ouverture a marché avec un 'or die'. Si on pas trop maso, on met même un
message sympa avec le die, et en général on aime bien mettre le même de
partout. Sauf que c'est pénible de recopier tout le temps la message.

J'ai essayé d'utiliser une routine :

sub open_r {
($fh, $file) = @_;
$file = "$file.tex" unless ($file =~ /.tex$/);
open ($fh, $file) or die "Pas moyen de lire $file :t$!";
}

(Usage : &open_r (MAIN, "mainfile").)

mais je n'en suis pas très satisfait pour deux raisons :
- avec use warnings je me prends des avertissement comme quoi
Name "main::PARA" used only once: possible typo at ./truc.pl line 34.
- et quand l'ouverture échoue, je n'ai plus les infos sympas du
genre 'at ./truc.pl line 17' (voire 'at <SUB> line 42' quand le problème
survient dans une boucle while (<SUB>)).

J'imagine bien que je suis loin d'être le premier à me poser ce genre de
questions, mais je n'ai pas réussi à trouver les bons mots-clé google pour
obtenir des infos intéressantes. Aussi viens-je vous demander : vous, vous
faites comment ?

Manuel.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #16643001
mpg wrote in message
(Usage : &open_r (MAIN, "mainfile").)



- avec use warnings je me prends des avertissement comme quoi
Name "main::PARA" used only once: possible typo at ./truc.pl line 34.



Utilise l'auto-vivification des références :

open my $main, "mainfile";

Et profites-en pour utiliser open avec la forme à trois arguments.

- et quand l'ouverture échoue, je n'ai plus les infos sympas du
genre 'at ./truc.pl line 17' (voire 'at <SUB> line 42' quand le problème
survient dans une boucle while (<SUB>)).



man Carp

Et tant qu'on y est, man fatal.
mpg
Le #16643321
Le (on) mercredi 27 août 2008 19:30, Nicolas George a écrit (wrote) :

mpg wrote in message
(Usage : &open_r (MAIN, "mainfile").)



- avec use warnings je me prends des avertissement comme quoi
Name "main::PARA" used only once: possible typo at ./truc.pl line 34.



Utilise l'auto-vivification des références :

open my $main, "mainfile";



Ok, je vais essayer.

Et profites-en pour utiliser open avec la forme à trois arguments.



Tu veux dire écrire

open FH, ">", "fichier";

plutôt que

open FH, ">fichier";

?

man Carp

Et tant qu'on y est, man fatal.



Merci, ça a l'air très intéressant.

Manuel.
Nicolas George
Le #16644341
mpg wrote in message
Tu veux dire écrire

open FH, ">", "fichier";



Non, open my $fh, ">", "fichier";

plutôt que

open FH, ">fichier";



Oui.
Publicité
Poster une réponse
Anonyme