use File::Find; @ARGV = (); find sub { push @ARGV, $File::Find::name if /\.html\z/; }, qw(/home /var/dir); while (<>) { next unless /\bExpired\b/; print "$ARGV\n"; # current filename close ARGV; # skip to next file now }