in reply to Re: spacy japh
in thread spacy japh

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

Replies are listed 'Best First'.
Re: Spoiler: spacy japh
by snafu (Chaplain) on Mar 27, 2002 at 19:41 UTC
    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.