sub transpose {
my $rows = shift;
my $max_col = @{ $rows->[0] } - 1;
[ map { my $c=$_; [ map {($_->[$c])} @$rows ] } 0..$max_col ]
}
####
# [ [ 0, 1 ] <== transpose ==> [ [ 0, 2 ]
# , [ 2, 3 ] ] , [ 1, 3 ] ]
####
my $data_by_rows = transpose(
[ \@ns_list, \@addr_list, \@ptr_list, \@uptime_list ]
) ;
####
$data_by_rows = [
[
'server1.foo-domain.net',
'1.2.3.5',
'5.3.2.1.in-addr.arpa',
'131 days'
],
[
'server2.noo-domain.net',
'11.22.33.55',
'55.33.22.11.in-addr.arpa',
'28 days'
],
[
'server3.zoo-domain.net',
'22.21.20.55',
'55.20.21.22.in-addr.arpa',
'366 days'
]
];
####
my %ns_records =
map {( shift @$_, [ @$_ ] )} @$data_by_rows;