if (exists $partners{$item}) { my ($partners, $email, $nickname, $realname, $postcode, $phone) = @{$partners{$item}}; # Do something. } #### if (exists $partners{$item}) { push @allmembers, $item, split / /, $partners{$item}{partners}; } #### sub do_for_partners { my ($item, $action) = @_; if (exists $partners{$item}) { $action->($item, $partners{$item}); } } # And the above example. do_for_partners($item, sub { push @allmembers, shift; push @allmembers, (shift)->{partners}; });