in reply to A Simple Japh
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.
|
|---|