Apologies for the U rather than the P; maybe I will rewrite it. :) This is my first bit of obfuscated Perl!
$_='>=====?===@>A==?=A>@?=?=>=B==?>>==@>==>==>A?>?@===>';while($! <51){$.=substr$_,$!;$\.=++$!%2x((ord$.)-60)}$\=($.x7).$\;$![$*++] =[chr(oct"0b$/"),":$/\n"]while$/=substr($\,$[,7)="";for(;$@<=@!;) {@_=@{$![$@++]};print@_,map{if(@$_[0]==$@){print@{$![$/]}while($@ !=($/=pop(@$_)))}}([9,3],[12,6,1,4],[14,5,8,4],[16,10,9])};#kjd:)

Replies are listed 'Best First'.
Re: jauh
by kjd (Acolyte) on Dec 19, 2002 at 06:36 UTC
    I notice this previous incarnation seems to work better in older Perl versions. Maybe abusing the builtins is bad form. I like it.
    $x='>=====?===@>A==?=A>@?=?=>=B==?>>==@>==>==>A?>?@===>';while($i <51){$d=substr$x,$i;$b.=++$i%2x((ord$d)-60)}$b=($|x7).$b;$u[$u++] =[chr(oct"0b$g"),":$g\n"]while$g=substr($b,$f,7)="";@m=([9,3],[12 ,6,1,4],[14,5,8,4],[16,10,9]);for(;$j<=@u;){@z=@{$u[$j++]};print@ z,map{if(@$_[0]==$j){print@{$u[$p]}while($j!=($p=pop(@$_)))}}@m};