while (<>) { my($ssn, $obj) = parse_account($_); push @{$accounts{$ssn}}, $obj; } #### while (my($ssn, $acctlist) = each %accounts) { foreach my $acct (@$acctlist) { print $ssn, $acct->email, "\n"; } } #### sub email { my $self = shift; return $self->{'email'}; }