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


in reply to too much punctuation

Deconstruction follows:

q delimited by brackets, all non-alpha numerics will be removed
$_=q[";7w2q";m/656/bq6/i;$g=q(3616w8206qc7);$/="265502";0;{$w=~y/726568q7/=46/;}for(6..ew(6));q1;=|20.747.3754|;@wa];

by this. /me strongly suspects hex encoded data at this point
s[\[^0-9a-f\]]{}g;         # $_ =~ s/[^0-9a-f]//g;

reverse the string keeping the pairs in order (72654a -> 4a6572)
@ARGV = reverse(/../g);

make a ref to @ARGV
$a=\@ARGV;

noise
0;

grep used like a map. converting the hex encoded data back to characters. Look at the last two non-alpha characters in the first line. 4a which is 'J'

grep { # @_ = map { push(@_,sprintf('%.2x',hex)) # sprintf('%. +2x',hex) } @$a; # } @$a;

set the default join character for arrays to '\x'
$"=q s\xs;                                  # $" = '\x';

joins @_ on \x, adding a \x in front. So $_ now contains \x4a\x75\x73 etc.
$$=qq"$\"@_";                               # $$ = '\x'.join('\x',@_);

remove any spaces in the string (induced by obfu formatting)
$$=~s/\s//g;

eval the hex string and print
print eval qq("$$");

/\/\averick
OmG! They killed tilly! You *bleep*!!