in reply to Re: no grep match returns undefined?
in thread no grep match returns undefined?

You can get rid of both temporary variables that way too. Step 1:
my $re = join '|', keys %vendors; if($args->{desc} =~ /$re/) { ... } else { ... }
Step 2: if($args->{desc} =~ /@{[join '|', keys %vendors]}/) { ... } else { ... } Depending on your Perl prowess you may or may not find step 2 readable.

Makeshifts last the longest.