I have following array of arrays in Perl that are getting as multiple rows in database.
$arrayref = [
[ 1, "name1", "name2" ],
[ 2, "name3", undef ],
[ 3, "name5", "name6" ],
[ 4, "name10", undef ],
];
I want to make this as an array of hashes like this
my @array = (
{ id => 1, name => "name1", l_name => "name2" },
{ id => 2, name => "name3", l_name => undef },
{ id => 3, name => "name5", l_name => "name6" },
{ id => 4, name => "name10", l_name => undef },
);
You can use map {} to transform array references to hash references,
my @cols = qw(id name l_name);
my @array = map { my %h; @h{@cols} = @$_; \%h } @$arrayref;
or
use List::MoreUtils qw( zip );
my @cols = qw(id name l_name);
my @array = zip(\@cols, @$arrayref);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With