J'ai un programme qui va extraire un fichier zip appelé "output.zip" et en faire un répertoire. Je voudrais faire un fichier journal si un certain mot est dans l'un des fichiers que j'ai extraits dans ce cas, le mot est Erreur. L'erreur que je reçois dit que le fichier n'existe pas. Comment puis-je réparer cela?Comment faire un fichier journal de sortie du fichier zip que vous venez d'extraire
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
my $sSource = "/home/glork/output.zip";
my $sDest = "/home/glork/zipped";
x_unzip($sSource,$sDest);
sub x_unzip {
my ($zip_file, $out_file, $filter) = @_;
my $zip = Archive::Zip->new($zip_file);
unless ($zip->extractTree($filter || '', $out_file) == AZ_OK) {
warn "unzip not successful: $!\n";
}
}
open(LOGFILE, "/home/glork/zipped/var/log/*.log") or die "can't find file";
while(<LOGFILE>) {
print "Error in line $.\n" if(/ERROR/);
}
close LOGFILE;
N'essayez pas d'utiliser un caractère générique dans 'open'. Vous ne connaissez pas le nom du fichier? – toolic
@toolic Ouais je connais les noms de fichiers mais, c'est un groupe de fichiers – Glorksnork
Vous devrez ouvrir chaque fichier l'un après l'autre. Vous ne pouvez pas écrire dans plusieurs fichiers en même temps. Mais vous pouvez avoir un tableau de handles de fichiers lexicaux, et parcourir pour écrire à tous. – simbabque