http://www.perlmonks.org?node_id=861985


in reply to Rosetta code: Split an array into chunks

Here's my obfuscated Perl solution:

use strict; use warnings; my @list = ("a", "bb", "c", "d", "e", "f", "g", "h"); my $chunky = chunky(3, @list); print "Chunky(@list) = \n$chunky\n"; sub chunky { my ($n, $i, $_) = shift; while (\0) { $_ .= (shift or last) . (!@_? $@: chr 32/(++$i % $n? 1: 3)) } $_.$/ } __END__ Chunky(a bb c d e f g h) = a bb c d e f g h

Give that to anyone asking this question as homework ;-)


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/