in reply to matching whole words only

I misread the question. Nothing to see here.

Use eq instead of a regex. Change:
if (@events = grep /$event/, @{ $region_of_state{$region_of_state}}) {

to:

if (@events = grep { $_ eq $event } @{ $region_of_state{$region_of_sta +te} }) {