use strict; use warnings; use Tie::File; use Archive::Zip; use Archive::Zip::MemberRead; use File::Glob ':glob'; my $Zip_File = 'ON_35110000_11485_AP06_UTC_29.06.2009_18.25.zip'; my $String = 'SYSTEM NOT AVAILABLE'; my $zip = new Archive::Zip($Zip_File); my @file2 = $zip->membersMatching( '.*' ); for my $file2 (@file2){ my $fh = new Archive::Zip::MemberRead($zip, $file2); my $fh2 = $file2->fileName(); print $fh2,"\n"; while (defined(my $line = $fh->getline())) { chomp($line); tie my @line, 'Tie::File', $fh2 or die $!; for my $i ( 0 .. $#line ) { if ($line[$i] =~ /$String/) { my $Zeile = $fh->input_line_number; my $read = $fh->read(my $buffer, 32*1024); open(LOG, ">>result.txt") or die $!; print LOG $line[ $i-23 ]; close LOG; untie @line; } } $fh->close(); } }