$results->bind(''=> sub{ $list = $results->curselection; if ($key eq "year") { &show($bros->{$data}->[$list]) } else { $index = 0; while($bros->{$ydx[$list]}->[$index]->{$key} !~ /$data/i){ $index++; } $yr = $ydx[$list]; &show($bros->{$ydx[$list]}->[$index]); });