in reply to
Search array of file names in directory structure
If I'm following your spec, the easiest way to accomplish your goal is use a hash:
#!/usr/bin/perl -w
use strict;
use File::Find::Rule;
use File::Basename;
my @filelist = qw(1234567_3a_20101000.html 99877_b_20111111.html 9987
+7_c_20111111.html 99877_d_20111111.html 99877_e_20111111.html 99877_u
+f_20111111.html
1234567_g_20101000.html 99877_h_20111111.html 99877
+_i_20111111.html 99877_j_20111111.html 99877_k_20111111.html 99877_ll
+_20111111.html
1234567_pl_20101000.html 99877_qa_20111111.html 998
+77_rr_20111111.html 99877_sx_20111111.html 99877_xy_20111111.html 998
+77_nm_20111111.html);
my %want;
$want{$_}++ for @filelist;
my $dir = '/var/www/files/';
my $find = File::Find::Rule
->file
->name(qr/\.html?$/)
->start( $dir );
my $f_count = 0;
my @found_html;
while ( defined ( my $html_document = $find->match ) ) {
$f_count++;
my $filenames = basename( $html_document );
push @found_html, $filenames if $want{$filenames};
}
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.