my $code = "sub is_wanted { " . join(" and ", @ARGV) . " } "; unless (eval $code.1) { die "Error in code: $@\n\t$code\n"; } $_ = $filepath; if (is_wanted()){ push @matched, $filepath; }