#!/usr/bin/env perl use warnings; use strict; use Data::Dumper; my $state= 'OHIO'; my %region_of_state; my @events; while () { chomp; next if /^\s*$/ || /^\#/; my $aref = [split /,/, $_]; foreach ($aref->[2]) { print "event = $_\n"; print "region = $aref->[1]\n"; push( @{$region_of_state{$aref->[1]}}, $_) if ($aref->[0] eq $state); } } my $event = 'SWIM'; my $region_of_state = 'NE'; if (@events = grep /$event/, @{ $region_of_state{$region_of_state}}) { print "Found a match\n"; } else { print "No Match\n"; } #print Dumper(\@events); #print "@events\n"; __DATA__ OHIO,NE,SWIMMING SWIMMER CLOCK OHIO,SW,BASEBALL PLAYER BATTER