my @pids; { open(my $pids_fh, '<', $pids_qfn) or die("Can't open PIDS file \"$pids_qfn\": $!\n"); push @pids, /\|(\d+)$/ while <$pids_fh>; } my $pids_pat = map qr/$_/, join '|', #map quotemeta, # We're only dealing with digits @pids; open(my $fids_fh, '<', $fids_qfn) or die("Can't open FIDS file \"$fids_qfn\": $!\n"); while (<$fids_fh>) { print if /^$pids_pat;/; } #### my $pids_pat = map qr/$_/, join '|', #map quotemeta, # We're only dealing with digits @pids; #### use Regexp::List qw( ); my $pids_pat = Regexp::List->new()->list2re(@pids);