#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $data1 = [ { 'NAME' => 'JOE DOE', 'DATE' => '2015-05-05', 'NUMBER' => '00001' } ]; my $data2 = [ { 'ACCOUNT1' => '1b', 'ACCOUNT2' => '2b', 'ACCOUNT3' => '3b', 'ACCOUNT4' => '3d' } ]; my $data3 = [ { 'ACCOUNT5' => '1c', 'ACCOUNT6' => '2c', 'ACCOUNT7' => '3c', }, { 'ACCOUNT8' => '4c', 'ACCOUNT9' => '5c', 'ACCOUNT10' => '6c' } ]; my $data4 = [ { 'NAME' => 'Anonymous Monk', 'DATE' => '2015-06-11', 'NUMBER' => '00005' } ]; $data1 = [ ({map { %$_ } (@$data1, @$data2, @$data3, $data4)}) ]; print Dumper $data1; __DATA__ $VAR1 = [ { 'ACCOUNT5' => '1c', 'ACCOUNT3' => '3b', 'ACCOUNT2' => '2b', 'NUMBER' => '00001', 'ACCOUNT7' => '3c', 'ACCOUNT8' => '4c', 'NAME' => 'JOE DOE', 'ACCOUNT1' => '1b', 'ACCOUNT6' => '2c', 'ACCOUNT4' => '3d', 'ACCOUNT10' => '6c', 'ACCOUNT9' => '5c', 'DATE' => '2015-05-05' } ]; $VAR1 = [ { 'ACCOUNT7' => '3c', 'ACCOUNT3' => '3b', 'ACCOUNT8' => '4c', 'ACCOUNT2' => '2b', 'ACCOUNT5' => '1c', 'ACCOUNT4' => '3d', 'NAME' => 'Anonymous Monk', 'ACCOUNT6' => '2c', 'ACCOUNT10' => '6c', 'NUMBER' => '00005', 'DATE' => '2015-06-11', 'ACCOUNT9' => '5c', 'ACCOUNT1' => '1b' } ];