Following a nice thread in perl5 porters (where you can find the explanation):

perl -lap -0777 -e'BEGIN{close STDIN;require Text::CSV_XS}$F[$#F/6-$=] +=~s/=b/h/;$_="@F[257,679,435,791]er"'
This requires Text::CSV_XS 0.52 (exactly). Graham Barr explained it here.

Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re: JAPHs that depend on the version of the module
by moritz (Cardinal) on Jul 31, 2008 at 11:35 UTC
    I feel it's worth adding that the original JAPH used -E instead of -e, thus increasing the likeliness the right version of CGI.pm was actually installed.

      Yes, but that is no guarantee at all, as all my CGI's in 5.10 were newer than that. As I just posted on p5p, here's some more info.

      For CGI 3.38, the shortest version would be:

      perl -lap -0e'BEGIN{close STDIN;require CGI}$_="@F[424,1010,96,16674]"'

      CGI has the longest pod from the core .pm's, so getting a success is relatively easy. It also happens to be the *only* CORE .pm that contains these four words. I found no other modules (even none-CORE) that enable this short version.

      Close come:

      • POE (1.003)
        perl -lap -0e'BEGIN{close STDIN;require POE}$F[2821]=substr$F[2821],-12,6;$_="@F[610,865,2455,2821]"'
      • XML::Twig 3.32
        perl -lap -0e'BEGIN{close STDIN;require XML::Twig}chop($_="\L@F[653,11676,5,19071]")'
      • Text::CSV_XS 0.52 (with a bit extra obfuscation)
        perl -lap -0e'BEGIN{close STDIN;require Text::CSV_XS}$F[$#F/6-$=]=~s/=b/h/;$_="@F[257,679,435,791]er"'

      Enjoy, Have FUN! H.Merijn
      Only temporarily, as all future Perl 5 will support -E.