# What I would like to have at the end: $VAR2 = [ { '111' => 'acct1', }, { '222' => 'acct2', }, { '333' => 'acct3', }, { '444' => 'acct4', }, { '555' => 'acct5', }, { '888' => 'acct8', }, ]; #### #/usr/bin/perl use strict; use warnings; use Data::Dumper; my @array = qw( 111 222 333 444 555 888 ); my @array2 = qw( acct1 acct2 acct3 acct4 acct4 acct5 acct8 ); merge( \@array, \@array2); sub merge { my $got1 = shift; my $got2 = shift; my $vals_1 = @{$got1}; my $vals_2 = @{$got2}; my %hash_of_data = ( @{$vals_1} => @{$vals_2}); print Dumper %hash_of_data; my %data; push @{$data{@{$vals_1}}}, @{$vals_2}; print Dumper %data; #foreach my $k (keys %hash_of_data) { # foreach (@{$hash_of_data{$k}}) { # print " : $_\n"; # } # print "\n"; #} }