use Data::Dumper; my %fruits=(); my @arr = ([1,1],[1,2],[3,5],[6,7]); for (@arr) { push @{$fruits{$_->[0]}}, $_->[1]; } print Dumper(\%fruits);