use strict; use Data::Dumper; my @dataA = ("A1", "C1", "S1"); my @dataB = ("007", "008", "005"); my @dataC = ("999-99-9999", "888-88-8888", "777-77-7777"); my @dataD = ("self", "spouse", "son"); my $ref; for my $i (0..$#dataA) { push @$ref,[$dataA[$i],$dataB[$i],$dataC[$i],$dataD[$i]]; } print Dumper $ref;