open(F,$0);$f=join('',<F>);close(F);@s=map{(map(chr,(index($f,join('' ,(map(chr,(41,41,41,46,46)))))..index($f,join('',(map(chr,(112,40,99) ))),index($f,join('',(map(chr,(46,46)))))),index($f,join('',(map(chr, (40,70,41))))),index($f,join('',(map(chr,(109,97,112,40))))))))[$_];} (9,20,18,19,26,0,13,14,19,7,4,17,26,15,4,17,11,26,7,0,2,10,4,17,27);; splice(@s,0,1,chr(74));splice(@s,13,1,chr(80));;$_=join('',@s);print;
I cheated by doubling a couple semicolons in the last 2 lines to get the line lengths to match up.

Replies are listed 'Best First'.
Re: Just Another JAPH
by Tux (Canon) on Feb 28, 2011 at 07:36 UTC

    To "gain" line-length, you can also use octal numbers instead of decimal, adding another level of obfuscation.

    using 0112 for 74 makes an (incorrect) visible relation to 112 two lines above.

    open(F,$0);$f=join("",<F>);close(F);@s=map{(map(chr,(index($f,join("" ,(map(chr,(41,41,41,46,46)))))..index($f,join("",(map(chr,(112,40,99) ))),index($f,join("",(map(chr,(46,46)))))),index($f,join("",(map(chr, (40,70,41))))),index($f,join("",(map(chr,(109,97,112,40))))))))[$_];} (9,20,18,19,26,0,13,14,19,7,4,021,26,15,4,17,11,26,7,0,2,10,4,17,27); splice(@s,0,1,chr(0112));splice(@s,13,1,chr(80));$_=join("",@s);print

    Enjoy, Have FUN! H.Merijn
      Neat! Thanks! I'm quite new to obfuscation, but I decided it ought to be a great way to learn about parts of Perl I might not use otherwise.