Being somewhat unsatisfied with my last obfu, I thought I'd try to take it to the next level. Thanks to an interesting observation by fizbin, I got my last bit of inspiration.
#!/usr/bin/perl
$ *= $ ,= 42; sub'_ {$ .[$ %++ ]=$ *+=$ _[$ |] ;\& _}_( 22)->(- 20,_(
+24),_(- 28
) )->( 12,_(- 12))->( -3,_(- 17),_(- 20));$ *=$ .=$ %=$ |;$ % ++?$ %%$
+ ^F ? ($ *
[$ *++] =$ _)&& ($ *[$ *++ ]=$ "):($ ,[$ .++ ]=$ _) && ($ ,[$ .++] =$
+") : ( $ *
[$ *++] =$ _)&& ($ *[$ *++ ]=$ ")&&($ ,[$ .++]=$ ")for( split// ,join'
+' ,map { s
<(-*\d+)(?{ pack 'c' ,$ ,+=$ _})><$^R> &&$ _}@ .);$ *[++$ *] =$ /;$ %=
+$ |; map {
print $ _^ ${ $ * }[ $ %++ ]}$ * > $ .?($ * = \ @ , )&& @ * :($ * = \
+@ *) && @,
I guess I'm still not 100% satisfied with it yet, so apologies in advance if you see more versions of this...
--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.