use strict; use warnings; my $info = test(); for my $name (sort keys %$info) { #print "$name: $info->{$name}\n"; my $checking = printing( names => $name, emails => $info->{$name}, ); } sub printing { my (%args) = @_; my $names = $args{names} || ''; my $emails = $args{emails} || ''; # need to count how many unique and repeated items and print results print "Unique=$names: $emails\n"; print "Dups =$names: $emails\n"; } sub test { my (@names_all, @email_all); my @names = qw(Joe mary ann pete amy jerry Joe ann John John ); my @email = qw(joe@test.com mary@test.com ann@nowhere.com pete@here.com amy@ok.com jerry@b.com joe@test.com ann@nowhere.com John@test.com John@ok.com); my %emails; @emails{@names_all} = @email_all; @emails{@names} = @email; return \%emails; }