$_='Just';$_='"...erxpnU;yerC;erugban;gfhW"gavec'; $-='another Perl';y/\\abcdefghijklmnopqrstuvwxyz ; /'nopqrstuvwxyzabcdefghijklm /; $-='Hacker';y/!!ABCDEFGHIJKLMNOPQRSTUVWXYZ ; /''NOPQRSTUVWXYZABCDEFGHIJKLM /; eval reverse $_; ''.''.''.''.''.'print "Just another Perl Hacker"';


This might not be as interesting as my first effort, and is perhaps not as obfuscated either. I like this one just the same. Feel free to deconstruct it.

Chris

Replies are listed 'Best First'.
Re: My second Japh...
by srawls (Friar) on Jun 14, 2001 at 23:16 UTC
    Alright, here it goes:
    $_='Just'; $_='"...erxpnU;yerC;erugban;gfhW"gavec';
    Easy to see, just setting $_ to something, then resetting it.
    $-='another Perl';
    Useless; $- is the number of lines left on the page of the currently selected output channel, and cannot be a string value (or a negative value). $- remains zero after this asignment.
    y/\\abcdefghijklmnopqrstuvwxyz ; /'nopqrstuvwxyzabcdefghijklm /;
    A simple translation on $_: Now the value is almost the reverse of "print "Just another Perl hacker..."", we just need one more translation to get it there:
    $-='Hacker'; #again, this is just filler y/!!ABCDEFGHIJKLMNOPQRSTUVWXYZ ; /''NOPQRSTUVWXYZABCDEFGHIJKLM /; #here's that translation I spoke of
    Now, the string is ready to be eval'ed
    eval reverse $_;
    Again, this is just filler, it evaluates to a string, which is a true value, but does nothing.
    ''.''.''.''.''.'print "Just another Perl Hacker"';

    The 15 year old, freshman programmer,
    Stephen Rawls

      If eval reverse $_ is just filler, where's the part that prints "Just another Perl Hacker"?

      It's certainly not ''.''.''.''.''.'print "Just another Perl Hacker"';, because that's just a bunch of single-quoted strings. :)

        Mabey that was not very structured, but the prase that said it was filler applied to the code below it, I was saying that ''.''.''.''.''.'print "Just another Perl Hacker"'; was just filler. Sorry for the confusion : )

        The 15 year old, freshman programmer,
        Stephen Rawls