use warnings; use strict; my $good_orgs = "First\nNational\nBank\nCompany\nLLC\nlegal"; my %good_orgs = map {lc()=>1} split /\n/, $good_orgs; sub is_good_org { my $organization = shift; my @parts = grep {length} split /[\s;,]+/, $organization; for my $org (@parts) { return unless exists $good_orgs{lc $org}; } return 1; } print is_good_org("LLC") ?"yes":"no", "\n"; # "yes" print is_good_org("Company, LLC") ?"yes":"no", "\n"; # "yes" print is_good_org("National Bank") ?"yes":"no", "\n"; # "yes" print is_good_org("legal company") ?"yes":"no", "\n"; # "yes" print is_good_org("National Bunk") ?"yes":"no", "\n"; # "no" print is_good_org("Illegal Exports")?"yes":"no", "\n"; # "no" print is_good_org("Test LLC") ?"yes":"no", "\n"; # "no"