Just a simple japh inspired by a conversation with ysth.
perl -we'@q = qw(hacker. Perl another Just); sub q { pop @q } for (0.. +6) {$q = $_ % 2 == 0 ? q(&) : q(;); print eval "${q}q( )"}'

Replies are listed 'Best First'.
Re: A Simple Japh
by muba (Priest) on Jan 18, 2007 at 03:08 UTC

    This one is pretty nice. Though it's not hard to understand what's going on, it's still pretty nifty.

    First, let us put this in a slightly more readable format.

    @q = qw(hacker. Perl another Just); sub q { pop @q } for (0..6) { $q = $_ % 2 == 0 ? q(&) : q(;) ; print eval "${q}q( )" }

    Good. That clarifies something. The funny thing here is that q() of course is to qq() what '' is to "" - that is the power of this obfu.

    With that in mind, let's put this thing in a more conventional way.

    for (0..6) { $q = $_ % 2 == 0 ? '&' : ';' ; print eval "${q}q( )" }

    Aha! That exlains a whole lot more! The for loop keeps track of a variable $q that alternates between '&' and ';'. So the string evalled alternates between &q( ) and ;q( ).

    By now, the secret is unraveled: the first eval calls the home-made sub, which returns one of the words of a JAPH. The second eval just means ;' ' and returns a space.