This is more a case of obfuscation through being arcane, rather than using any brand new super Perl idioms. I'm sure there are many ways you could shrink this, even after killing the red herrings :-) This took quite a while, but I figured my first JAPH required some effort, considering the fine precedents I see here :-)

It will not work under use strict

%->JAPH;$_ =~ s$$7011222324555617183920211233642536371829:-) 1011522314252647181920312213242516373839101112538425261748:( 291021$x;$;<=0x666;map{split//;$a.=$_[1]x$_[0];}split/(..)/; $;=eval"\"0\",length(\$_)+33;"; my $s=reverse(0x258)+oct($;) ;map{my$q;my$og;if(($_-$l)<0){$l=-1};$x[$;++/6].=$_-$l;if (# length($x[($;-1)/6])==6){my@f=split//,$x[($;-1)/6];$f[0]&&( $q=-1)||($q=1);foreach my$ui((7-6)...(30/6)){$og+=2**($ui-1) if$f[$ui];}$og*=$q;$s+=$og;print chr($s);}$l=$_;}split//,$a;

Replies are listed 'Best First'.
Maintenance issues
by sleepingsquirrel (Chaplain) on Dec 11, 2003 at 21:44 UTC
    As all good monks know, using strictures is essential for the maintenance programmer who has to deal with the code long after you've departed. So I've taken the liberty of correcting this oversight;)
    %->JAPH;use strict;$_=~s$$7011222324555617183920211233642536371829:-) 1011522314252647181920312213242516373839101112538425261748:(291021 $; $;<=0x666;map{ split//;$a.=$_[1]x$_[0];} split /(..)/;$;=eval "\"0\", length(\$_)+33;";my $s=reverse(0x258)+oct($;);my @x; my $l;map{my $q; my $og;if(($_-$l)<0){$l=-1};$x[$;++/6].=$_-$l;if(length($x[($;-1)/6]) ==6){my @f=split//,$x[($;-1)/6];$f[0]&&($q=-1)||($q=1);foreach my $ui ((7-6)...(30/6)){$og+=2**($ui-1)if$f[$ui];}$og*=$q;$s+=$og;print chr( $s);}$l=$_;}split//,$a;
      Ahh, but the problem with that is you've made it too easy to read and maintain with that! That belongs in the Code Catacombs, not Obfuscation! ;-)