http://www.perlmonks.org?node_id=88629


in reply to Careful Evaluation

I dare somebody to deconstruct it :)

OK. First, tidy up syntax and delimiters and rename some variables.

$$ = q{$_=unpack'u',q|L)%\]<2$D7STG<')I;G0@(DIU<W0@86YO=&AE<B!097)L(&A +A8VME<B(G(3L`|;}; $b = q{$_=unpack'u',q|<)%\])R1?/7$A*"1?*3TH)"0]?B\N*B]G*2$G.P``|;}; #$$ =~ s/\n//g; $a = '$_=$b'; $_ = '$_=$a'; #$} =~ s/\n//g; eval; eval; eval; eval; eval; eval; eval; eval; eval; eval;
The commented lines aren't needed if the q|| are on one line.

So, (this is easier to read starting from the bottom of the tidied code) the first 3 evals set $_ to $a and then $b then eval the unpack inside $b.

The unpack produces $_='$_=q!($_)=($$=~/.*/g)!';, which, after 3 more iterations sets $_ to $$ (the unpack on the first line).
This unpack sets $_=q!$_='print "Just another Perl hacker"'!;, which, after another 2 iterations gives us the familiar
print "Just another Perl hacker" which duly evals.

Hope that is sufficient explanation.
--
Brovnik