in reply to Process multiple files in a directory

Hello born_Today, and welcome to the Monastery!

First, you should always begin your scripts with:

use strict; use warnings;

and declare variables with my. You should also test every open and close statement for success, either explicitly, or by adding:

use autodie;

to the head of your script.

Now, your second while loop does nothing, because at the end of the first loop the filehandle FILE is pointing to the end of the file. You could seek to the beginning, but actually there is no need for the second loop — just include the logic for string2 in the first loop. Like this (untested):

use strict; use warnings; use autodie; my @files = <C:/temp/CHOP/*JUNE*>; for my $file (@files) { my $count = 0; open(my $fh, '<', $file); print "=====$file=====\n"; while (my $line = <$fh>) { if ($line =~ /Total/) { print $line; } elsif ($line =~ /failed/) { ++$count; } } close $fh; print "Total Volume Failed to Resolve: $count\n" ; }

Note that I have converted FILE into the lexical variable $fh, and used the 3-argument form of open. I have also replaced the %count hash with a simple scalar, which seems to be all that is needed.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,