use ihb::List::Util qw/ zip group /; my %ns_records; @ns_records{@ns_list} = group(3, zip(\( @addr_list, @ptr_list, @uptime_list ))); #### use ihb::List::Util qw/ zip group /; my @arrays = \( @addr_list, @ptr_list, @uptime_list ); my %ns_records; @ns_records{@ns_list} = group(scalar @arrays, zip(@arrays));