Hello folks, I'm a new member to this site, and I just thought I'd run my first obsfucation by you folks. Sadly, I was only able to get it down to 635 characters. Ah well
$d="4Obsfucated 1Perl 1Sript 1by 1Zac 1Pavlov 7 1 1 1 1 1 5 2 2 1 6 2 1 1 1 8 2 1 1 2 5 1 4 8 1 3 1 5 4 1 4 2 1 1 1 9 3 1 1 7 1 1 1 2 6 1 1 2 1 7 2 1 3 4 4 1 7 1 1 1 2 6 1 1 2 1 6 2 2 1 4 2 2 2 4 3 1 1 5 1 4 7 2 3 5 2 1 1 1 5 1 1 1 2 6 1 1 2 1:)";@i=split(/\s/,$d);$s=0;foreach$h(@i ){($s==0)?{eval'$f=0;for($n=2;$n<=$h/2;$n++){$m=0;if($h/ $n==int($h/$n)){$f=1}}$l="";$s=($f==1)?1:2'}:{eval'($s==1) ?{eval\'for($n=0;$n<$h;$n++){$l=(0).$l;$s=2;}$m=$m+$h;\'}: {eval\'($s==2)?{eval\\\'for($n=0;$n<$h;$n++){$l=(1).$l;$s=1 ;}$m=$m+$h\\\'}:japh\'}'};($m==5)?{eval'$s=0;print(pack ("B8","011".$l))'}:{eval'($m>5)?{eval\'$s=0;print(" ")\'}:japh'}}

Replies are listed 'Best First'.
Re: Anothe JAPH entry
by extremely (Priest) on Nov 17, 2000 at 13:40 UTC
    The 2 on the third line should not have a space after it. =) Nasty with all those evals.

    You sould shorten it a bit with $_= at the beginning, and then change @i=split(/\s/,$d); to split/\s/; with the intrinsic split to @_ handy and it ups the line noise factor. Also, change foreach$h(@i) to just for(@_) and change all the references from $h to $_ which again ups the ugly.

    Also, you can test for integer-ness on division with if(!($_%$n)) rather than if($_/$n==int($_/$n)) Beyond that you can change $m=$m+$_ into $m+=$_

    All of that got it to 612 chars. I beat it down to about 473 chars but actually made it MORE readable in the process. =P Oh well. Good one, BTW. I had fun figuring it all out. Hopefully the tips above will make you even more dangerous in the future.

    --
    $you = new YOU;
    honk() if $you->love(perl)

      Thank you very much for responding. I submitted an updated one before I read you're article, and was able to get it down to 460 (Using substitutions, single char splitting, and a few more ? instead of ifs)