in reply to spacy japh

Ok. Now I am genuinely interested in how this bad boy works. I've tried breaking it down but this is way over my head. Hows this work?

_ _ _ _ _ _ _ _ _ _
- Jim
Insert clever comment here...

Replies are listed 'Best First'.
Spoiler: spacy japh
by Len (Friar) on Mar 27, 2002 at 08:37 UTC
    As japh already explained in this thread, the characters JAPH are determinated by the place of the spaces in the code. The code itself is put in $_ and than evalled. So the code actually parses it's own code. The length of the blocks of non-whitespace characters, added with 61 (62 +-1) forms the ascii worths for J A P H.
    #!/usr/bin/perl $_='print(chr(62+ -+1+ length))foreach(((m /(\S+)/g)))';eval; print(chr(62+ <-Length:13 Ascii:61+13=74 (J) -+1+ <-Length:4 Ascii:61+4=65 (A) length))foreach(((m <-Length:19 Ascii:61+19=80 (P) /(\S+)/g))) <-Length:11 Ascii:11+61=72 (H)
    Cheers, Len
      Yes. I read Japhy's comment...and that is the theory of how it works, true. I was wanting more of a breakdown (similar to what you did). And now, I have a few more questions regarding your breakdown.

      I am seeing syntax that is just not recognizable to me. This is what I would like learn.

      -+1+                <-Length:4  Ascii:61+4=65  (A)

      How does '52+ -+1+ length' work? Specifically the '-+'...what does that do?

      I finally just figured out that this is one of those 'do this for each iteration of expression'. So really, I am just wondering what the operators are doing up there.

      _ _ _ _ _ _ _ _ _ _
      - Jim
      Insert clever comment here...

        '62+ -+1+ length' is just a difficult way to write '61 + length'.

        62+-+1 is 61. Just 'print 62+-+1'.

        The reason for this operator thing is the same as for the many brackets around foreach.
        They are just filler to get the right length of blocks of non-whitespace characters to get J A P H.