my @failures = grep { !/$regex/ } @array; if ( @failures ) { warn "Validation failure. Bad names: @failures\n"; } #### my %valid_names; @valid_names{ qw/ A B C D E / } = (); # define the set of valid names. my @failures = grep { ! exists $valid_names{$_} } @array; # and so forth.