my $xml_dir = "c://temp"; opendir(DIR, $xml_dir); my @files = grep { /\.xml$/ } readdir(DIR); closedir(DIR); foreach my $file (@files) { open my $fh, "$xml_dir//$file" or die "can't open $file: $!"; local $/; my $contents = <$fh>; close $fh; print "$file is "; if($contents !~ /(.*)<\/order>/s){ print "NOT "; } print "valid\n"; }