##
sub pair { map @_[$_,$_+@_/2], 0..$#_/2 }
$_='A # B # 1 # 2';
print join ' # ', pair split / # /;
####
sub pair { map @_[$_,$_+@_/2], 0..$#_/2 }
sub pair { map $_[($_&1)*@_/2+($_>>1)], 0..$#_ }
sub pair { @_[ map +($_,$_+@_/2]), 0..$#_/2 ] }
sub pair { @_[ map ($_&1)*@_/2+($_>>1), 0..$#_ ] }