#! perl use strict; use warnings; use Data::Dump; my @A = qw ( H1 H2 H3 H4); my @B = qw (1 2 3 4 5 6 7 8 9 10); my %h; map {push @{$h{ $_ }},grep {defined} shift @B} (@A, reverse @A) x int ($#B / $#A) ; dd %h;