#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @x = ( { 'date' => '2001-06-04', 'number' => '12345', 'amount' => '100.00', 'status' => 'paid', 'type' => 'new' }, { 'date' => '2000-001-02', 'number' => 'xc234', 'amount' => '30.88', 'status' => 'new', 'type' => 'cost' } ); my @y = ( { 'ppay' => 'Smith Doe' } ); my @z = ( { 'deb1' => '0', 'cred' => '0', 'addr' => '100 - Main Street', 'total' => '250.00 usd', }, { 'deb1' => '0', 'cred' => '50.14', 'addr' => '1 - Central', 'total' => '51.00', } ); print "This replicates your dumper output:\n"; print Dumper \@x,\@y,\@z; #This is what you need in your source code: my @combined = (@x,@y,@z); print "\n####### Desired Dumper Output ####\n"; print Dumper \@combined; __END__ This replicates your dumper output: $VAR1 = [ { 'type' => 'new', 'status' => 'paid', 'amount' => '100.00', 'number' => '12345', 'date' => '2001-06-04' }, { 'number' => 'xc234', 'date' => '2000-001-02', 'amount' => '30.88', 'status' => 'new', 'type' => 'cost' } ]; $VAR2 = [ { 'ppay' => 'Smith Doe' } ]; $VAR3 = [ { 'addr' => '100 - Main Street', 'total' => '250.00 usd', 'cred' => '0', 'deb1' => '0' }, { 'addr' => '1 - Central', 'total' => '51.00', 'cred' => '50.14', 'deb1' => '0' } ]; ####### Desired Dumper Output #### $VAR1 = [ { 'type' => 'new', 'status' => 'paid', 'amount' => '100.00', 'number' => '12345', 'date' => '2001-06-04' }, { 'number' => 'xc234', 'date' => '2000-001-02', 'amount' => '30.88', 'status' => 'new', 'type' => 'cost' }, { 'ppay' => 'Smith Doe' }, { 'addr' => '100 - Main Street', 'total' => '250.00 usd', 'cred' => '0', 'deb1' => '0' }, { 'addr' => '1 - Central', 'total' => '51.00', 'cred' => '50.14', 'deb1' => '0' } ];