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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !