I golfed it down a little and furthered the obfuscation a bit as well, but kept your basic premise. The golfing removes some of the easy readability of your original code garnered by running the likes of:
sed s/eval/print/ mpeg.pl | perl | sed s/eval/print/ | perl | perl -MO
+=Deparse
Which of course gives us an easy to read, and easy to understand:
@_ = (104, 97, [112, 2], 121, 32, 98, 105, 114, 116, 104, 100, 97, 121
+, 10);
foreach $_ (@_) {
print chr $_ if not ref $_;
print chr($$_[0]) x $$_[1] if ref $_;
}
$
_
=
'
$
_
=\')01,121,79,001
,401,611,411,501,
89,23,121,]2,211[
,79,401(rof)rhc:]
1[_$$x)]0[_$$(rhc
?)fer((tnirp\';s,
,reverse,ee';s'\s
'$_'geex;m,,mgsix
And I just noticed that my version seems a bit harder to handily pick apart with sed | Deparse (or variation thereof) - the de-obfuscator needs to do a bit more work.
--chargrill
$,=42;for(34,0,-3,9,-11,11,-17,7,-5){$*.=pack'c'=>$,+=$_}for(reverse s
+plit//=>$*
){$%++?$ %%2?push@C,$_,$":push@c,$_,$":(push@C,$_,$")&&push@c,$"}$C[$#
+C]=$/;($#C
>$#c)?($ c=\@C)&&($ C=\@c):($ c=\@c)&&($C=\@C);$%=$|;for(@$c){print$_^
+$$C[$%++]}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.