sub group { my $n = shift; my @rv; push @rv, [ splice(@_, 0, $n) ] while @_; return @rv; } my @rv = group($C, @list);