Greetings!

I realized that my previous JAPH was thoroughly unattractive because you had to squint in order to decipher it, which isn't pleasant. That's why I came up with this one. It is based on the same idea of extracting JAPH one character at a time from successive iterations of the SHA512 of the code, but now features whitespaces(!) and pretty symmetrical subroutines. I hope you have as much fun understanding it as I had writing it. Here it is:

use strict; use Digest::SHA substr(q/=sha512(\/), $/, q); %_ = (undef($/) && (open *q, $0) => undef($/) || ($/=<q>) !~ s+= \w\+=+= =+??? : 6); $/ =~ s+[\xD\xA]\++\xA+g; $_ = aJcpbneUbBdThmaWbMqehybAhIkAaPeYavrNcjd0bvb9gxfjay=>; y #a-zA-Z0-9_$/y #\0->y;#; y #a-zA-Z0-9_$/y #\0->y;#; print substr($/=sha512($/), $_, 1) for (map &_ => /./gs); sub _ ( ) { # } ( ) _ dus sub x ($) { ! q ! } ($) x dus { 0 x (0) rox ! xor (0) x 0 } !((//m...//m) ^ (m\\...m\\))? (64)x + (ord) : (ord) + x(49) } # {

perl -w it, it runs without warnings and prints exactly "Just another Perl hacker,".

Good start points to understand what happens:

EDIT: Here's an alternative version of the code that doesn't read it's own source, making it more portable (possible use as a one-liner, no trailing whitespace problem) but much less interesting:


In reply to Pulling JAPH out of the iterated SHA512 of the code... by Grimy

Title:
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.