my %outfiles = map { /(.*)\Q$outsuffix\E$/; $1 => 1 } &GetOUTDirFiles($outpath); my @infiles = grep { /(.*)\Q$insuffix\E$/; not exists $outfiles{$1} } &GetINDirFiles($inpath); print "@infiles\n";