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; #### $VAR1 = [ [ 'A1', '007', '999-99-9999', 'self' ], [ 'C1', '008', '888-88-8888', 'spouse' ], [ 'S1', '005', '777-77-7777', 'son' ] ]; #### use strict; use Data::Dumper; my @fields = qw(cust_id ssn relation); my @ent = ("A1", "C1", "S1"); my @id = ("007", "008", "005"); my @ssn = ("999-99-9999", "888-88-8888", "777-77-7777"); my @rel = ("self", "spouse", "son"); my %data; for my $i (0..$#ent) { my %hash; @hash{@fields} = ($id[$i],$ssn[$i],$rel[$i]); $data{$ent[$i]} = \%hash; } print Dumper \%data; #### $VAR1 = { 'C1' => { 'relation' => 'spouse', 'cust_id' => '008', 'ssn' => '888-88-8888' }, 'S1' => { 'relation' => 'son', 'cust_id' => '005', 'ssn' => '777-77-7777' }, 'A1' => { 'relation' => 'self', 'cust_id' => '007', 'ssn' => '999-99-9999' } }; #### foreach my $key (sort keys %data) { print 'insert into db_table(', join(',',('entity',keys %{$data{$key}})), ') values(', join(',',map { "'$_'" } ($key,values %{$data{$key}})), ")\n"; } #### for (@major_PER_Data) { print 'insert into db_table(', join(',',keys %$_), ') values(', join(',',map { "'$_'" } values %$_), ")\n"; }