in reply to Passing file names to search directories

Try something more like this:
#!/usr/bin/perl use strict; use warnings; use 5.012; # http://perldoc.perl.org/File/Find.html use File::Find; # http://perldoc.perl.org/Getopt/Long.html use Getopt::Long; my @locations; my @fnames; my $verbose; my $ignorecase; GetOptions ( "location=s" => \@locations, "filename=s" => \@fnames, "ignorecase" => \$ignorecase, "verbose" => \$verbose) or die("Error in command line arguments @ARGV\n"); my $USAGE = "$0 -l <directory> -f <filename> [-v] example: $0 -l /var/www/allfiles -f abc122.txt -f 333twom.txt -f 56test.txt -f +t445ok.txt "; die $USAGE unless @fnames; die $USAGE unless @locations; my @files; find({ wanted => \&process, follow => 0, no_chdir => 1 }, @locations); sub process{ my $addfile = 0; for my $f (@fnames){ print "Considering '$_' in $f \n" if $verbose; if(index($_,$f)>-1){ ++$addfile; last; } } push @files, $File::Find::name if $addfile; } use Data::Dumper; print Dumper \@files;