{ my @targ_shift = ( \$a, 0, \$a, 8, \$a, 16, \$a, 24, \$b, 0, \$b, 8, \$b, 16, \$b, 24, \$c, 8, \$c, 16, \$c, 24, ); for (0 .. $len-1) { my ($targ, $shift) = splice @targ_shift, 0, 2; $$targ += $k[$_] << $shift; } }