Perl et Signaux : Broken Pipe
Bonjour à tous, ca fait un bout de temps que je ne suis pas venu ;)
J'ai un petit problème de broken pipe, lors de lecture de fichiers zippés. Le broken pipe se produit lorsque je fais un close du descriptor avant d'avoir atteint la fin du fichier. Y a-t-il un moyen pour éviter ce désagrément ?
ex:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
use strict;
use warnings;
my $file = '/home/user1/file.gz';
open(my $input, "zcat -f $file |") or die("impossible d'ouvrir $file en lecture\n");
while (<$input>) {
if ( m/^TOTO$/ ) {
print("TOTO trouvé !\n");
last;
}
}
close($input); # génère un broken pipe si toto a été trouvé, autrement dit si je n'ai pas lu l'intégralité du flux |
version de Perl utilisée: v5.6.1 sous Linux
quelqu'un saurait-il comment éviter ce petit désagrément (qui vient pourir les logs bien évidemment, lorsqu'on ouvre 2000 fichiers simultanément, et qu'on a 2000 broken pipe, bien le bonjour pour lire les traces entre 2) ?
Merci d'avance !