in reply to Re^2: How to get this not the usual round robin looping
in thread How to get this not the usual round robin looping

You can also complicate it to avoid the loop (in fact, disguise it as a repetition) and the // operator:
push @{ $h{$_} }, shift @B for (@A, reverse @A) x (@B / @A / 2), (@A, reverse @A)[ 0 .. @B % (2 * @A) - +1 ];

Update: Another idea:

for my $i (0 .. $#A) { $h{ $A[$i] } = [ @B[ grep { my $m = $_ % (2 * @A); grep $_ == $m, $i, 2 * @A - $i - 1 } 0 .. $#B ] ]; }

TIMTOWTDI, an iterator:

my $iter = do { my ($pos, $step) = ('0E0', 1); sub { my $r = $H{ $A[$pos] } ||= []; if ($pos % $#A || $pos =~ /E/) { $pos += $step; } else { $pos .= 'E0'; $step *= -1; } return $r } }; push @{ $iter->() }, $_ for @B;
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ