Got some code which would take a Perl grand master to understand without running it? Post it in this section so we can stare at it in awe.

Word of warning, though: Don't be too cocky with your post — almost inevitably someone will post a reply that does the exact same thing in even fewer characters!

New Less than Readable Code
Great Idea!
No replies — Read more | Post response
by joecamel
on May 12, 2010 at 08:13
    ! ! ! ! ! ! ! i ;$_=join( q!!=>map{$!=$!& 0;map{s$![^\]! =s!! \$x-Y\\[@!]!Y=$! =$x ;$!+=s$[q!=>\$x-Y= [@! ]$!={$g}@$_;$g=i&& q!! . chr ($! +0x3E)}([\\$!=>{!! !$! =>! chr , [!$!]}]=>[\$!=>\$!=>\$! =>[!$!]]=>[\$!=>\$!=> {$!=>[$!]}=>{!$!=>[ $!]}]=>[\\$!=>{$! =>[Y]}]=>[\$!=> {$!=>[!$!]}=> \\!$!]=>[ \\$!])) ; print=> ! ! print=> ! ! print=> ! print=> print=> print
turn it upside-down
4 direct replies — Read more / Contribute
by AutomateWithPerl
on Apr 20, 2010 at 13:21
    s/\:\(/\:\)/g;
use perl;
No replies — Read more | Post response
by shmem
on Feb 25, 2010 at 15:00
    print q.use..$",sub{use:perl,@_}->(q);)),^@^,q;or die;
My e-mail signature JAPH
No replies — Read more | Post response
by joaocoutinho
on Feb 23, 2010 at 15:24
    perl -E '@O=("\x61\x6e\x6f\x74\x68\x65\x72","\x50\x65\x72\x6c","\x68\x61\x63\x6b\x65\x72\x2c\xa");$J0="\x4a\x75\x73\x74\x20";say"$J0@O"'
Decimal Gray Code in 31 chars
2 direct replies — Read more / Contribute
by Oromis92
on Jan 18, 2010 at 17:14
    print(($_^$_>>1).$/)for(0..pop)

    simplest as possible

Yuletide Greetings!
No replies — Read more | Post response
by jffry
on Dec 24, 2009 at 17:04
    $t = int rand(14) + 6; $t = $t % 2 ? $t + 1 : $t; for $l (1..$t) { print ' ' x ((int(($t + 1) / 2 )) + 1) . "*\n" if $l == 1; print ' ' x (int(($t + 1) / 2 )) . '/' . (int rand(2) ? "#" : '&') . "\\\n" if $l == 2 ; print ' ' x ((($t + 1) - ($l + ($l % 2 ? 0 : 1))) / 2) . '/' . (int rand(2) ? "#" : '&') x ($l + ($l % 2 ? 0 : 1)) . "\\\n" if $l >= 3 ; } print '^' x ($t + 3) . "\n"; print ' ' x ($t / 2) . '|H|' . "\n";
Xmas Msg (just for linux)
No replies — Read more | Post response
by smokemachine
on Dec 23, 2009 at 14:40
    perl -e'*MERRY=*\;*XMAS=*/;' -F: -nae'$,=join q,,,map{chr$_+@{[(1)x un +pack q C\CC,q q \q \q q]}}q 1007769828289001 =~/.{2}/g;BEGIN{*SANTA = + *ARGV}$MERRY=$XMAS;print$F[0],join q,,,map{chr}q;0991041141051151161 +09097115;=~/(.{3})/g;BEGIN{push@SANTA,join q,,,map{chr}q 304710111609 +90471120971151151191003 =~/(.{3})/g}'
Functional Composition
2 direct replies — Read more / Contribute
by billh
on Dec 17, 2009 at 15:41

    This isn't really obfuscation, it's even vaguely useful, but see if you can figure out what Pipes.pm must be doing, given that this prints o-l-l-e-H

    use strict; use warnings; use Pipes; print "hello" | fn { ucfirst($_[0]) } | fn { [ split('', $_[0]) ] } | fn { [ reverse(@{$_[0]}) ] } | fn { join('-', @{$_[0]}) } | fn { $_[0] . "\n" };
    Bill H
    perl -e 'print sub { "Hello @{[shift->()]}!\n" }->(sub{"World"})'
Doing it with command line switches
3 direct replies — Read more / Contribute
by JavaFan
on Dec 10, 2009 at 08:43
    On the chatterbox, PhilHibbs asked Does anyone know how to make ls produce a comma-separated list, or have a perl one-liner to do it?

    Here's a solution that does it all with command line switches:

    ls -1|perl -054lp012e1
    I leave it as an exercise to the reader to figure out how it works.
JAPH again
No replies — Read more | Post response
by locked_user mtve
on Nov 11, 2009 at 09:18

    Few variants of no-digits obfu:

    #!perl -l print map chr oct oct oct oct hex,debf,fbbcf,hex hex eaff,adfff; print map chr oct oct oct oct oct hex,abadf,hex cd,hex ec,ffaef; print map chr oct oct oct hex,hex hex oct hex bfd,dbbf,fbbbd,ea;

    Update: finally, more fun

    print chr oct oct oct hex for qw acfed ccf debf cdefa

Set the new obfuscation standard
Title:
code@?#!:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":


  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.