Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: too much punctuation

by maverick (Curate)
on Jun 13, 2002 at 15:57 UTC ( [id://174248] : note . print w/replies, xml ) Need Help??

in reply to too much punctuation

Deconstruction follows:

q delimited by brackets, all non-alpha numerics will be removed

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


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)

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

OmG! They killed tilly! You *bleep*!!