sub checkxtlist (@) { my @Excluded = qw(Table_A Table_B); my %Excludes = map { $_ => 1 } @Excluded; my @Accepted = grep { !$Excludes{$_} } @_; my $status = (@_ == @Accepted) ? "good" : "bad"; } #### sub checkxtpatlist ($@) { my $pat = shift; my @Accepted = grep { !/$pat/ } @_; return my $status = (@_ == @Accepted) ? "good" : "bad"; } my $s = checkxtpatlist(qr/Table_[ABC]/,@tables);