Instead of posting these separately, I'm just posting them here in one. They share the same underlying concept, two more so obviously.
$..=$_ for( qw(^,?y,(.),:^ y?y ?@xz?:^ .?y .mvm.:^ :?y :grr::^ .? udvn
+'',(ebmv%
//,^ .)[1,0,2]:^ :?~e :^,\1:^ `^ &^'::^y?~f?@xz?xz@?:^:?~e:^,\1^,\2:^2
+^1^2::));
$_=$.;y*^y: @wx fez %db uvm?*$q; auc ysh top jil=*;eval;print for($q,$
+;,$ .,$/)
While this one shares the same underlying concept, it goes about it in a different way.
s **lil*;$ *= join '', sort split q **; s ;.*;grr; &&s +(.(.)).+$ 2$ 1
++ ; $ ; =
qq -$_-;s ,.*,ahc,;$ ,.= chop for split q ,,, reverse;print for($ ,,$
+;,$ *,$ /)
This one's very similar to the proceeding one, but I liked the
chop for split reverse phrase and wanted to play with it a little more.
s **lil*, $ .=$ *=$ _, s ,.*,ahc,, $ ,= $ _, $ *= join'' ,sort split q
+ **, $*; s
?.*?grr? ? s?(.(.)).?$2$1? : m:(.+),: ? s?.((.).)?$1$2? : s::$&: ; $ ;
+=$ _; $ .=
$ ,,$ ,= m,{?($1)},;$ ,.=chop for split q ,,,reverse$ .;print for($ ,,
+$ ;,$*,$/)
--chargrill
$,=42;for(34,0,-3,9,-11,11,-17,7,-5){$*.=pack'c'=>$,+=$_}for(reverse s
+plit//=>$*
){$%++?$ %%2?push@C,$_,$":push@c,$_,$":(push@C,$_,$")&&push@c,$"}$C[$#
+C]=$/;($#C
>$#c)?($ c=\@C)&&($ C=\@c):($ c=\@c)&&($C=\@C);$%=$|;for(@$c){print$_^
+$$C[$%++]}