my @invalid_list = qw< John Simon Mathias Aerith Bob >; my @test = qw< Alice Bob John Doe >; my %invalid = map { $_ => 1 } @invalid_list; for my $name (@test) { print "$name\n" unless exists $invalid{$name}; } #### use List::Util qw( none all any ); for my $name (@test) { print "None > $name\n" if none { $name eq $_ } @invalid_list; print "Any > $name\n" unless any { $name eq $_ } @invalid_list; print "All > $name\n" if all { $name ne $_ } @invalid_list; }