Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ouvrir des fichiers en toute tranquilité

0 views
Skip to first unread message

mpg

unread,
Aug 27, 2008, 1:06:22 PM8/27/08
to
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 :\n\t$!\n";
}

(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.


Nicolas George

unread,
Aug 27, 2008, 1:30:29 PM8/27/08
to
mpg wrote in message <g941ie$2thi$1...@talisker.lacave.net>:

> (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

unread,
Aug 27, 2008, 1:59:41 PM8/27/08
to
Le (on) mercredi 27 août 2008 19:30, Nicolas George a écrit (wrote) :

> mpg wrote in message <g941ie$2thi$1...@talisker.lacave.net>:
>> (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

unread,
Aug 27, 2008, 3:19:13 PM8/27/08
to
mpg wrote in message <g944md$880$1...@talisker.lacave.net>:

> Tu veux dire écrire
>
> open FH, ">", "fichier";

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

> plutôt que
>
> open FH, ">fichier";

Oui.

0 new messages