Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

The Top Ten Perl Obfus

by eyepopslikeamosquito (Chancellor)
on Dec 14, 2014 at 08:24 UTC ( #1110292=perlmeditation: print w/replies, xml ) Need Help??

Following on from The First Ten Perl Obfus, I thought it would be fun to count down the top ten highest rated Perl Monks obfus of all time.

Since I cannot super-search by node reputation, please note that this list is based solely on my memory of spectacular obfus I've seen over the years. So, if I have overlooked an obfu gem, please let us know, and I will correct the root node. Note that, to make the top ten, a node needs a reputation of at least 240.

No 10: Fun With Reserved Keywords by blokhead Sep 11 2003 rep:200+

#!/usr/bin/perl not exp log srand xor s qq qx xor s x x length uc ord and print chr ord for qw q join use sub tied qx xor eval xor print qq q q xor int eval lc q m cos and print chr ord for qw y abs ne open tied hex exp ref y m xor scalar srand print qq q q xor int eval lc qq y sqrt cos and print chr ord for qw x printf each return local x y or print qq s s and eval q s undef or oct xor time xor ref print chr int ord lc foreach qw y hex alarm chdir kill exec return y s gt sin sort split

Constraints are the heart of obfu.

Here blokhead constrains himself to using lowercase alphabetic characters only, no punctuation at all. Combining with an exact right hand margin produces a visually stunning and surprising block-shaped obfu.

See also:

No 9: Mandelbrot flythrough by blokhead Feb 17 2004 rep:200+

Note that this obfu is formatted with pre tags so that the PerlMonks default line-breaking of code at 70 characters does not spoil the visual presentation.

#!/usr/bin/perl
 $r=25; $c=80;
                                              $xr=6;$yr=3;$xc=-0.5;$dw=$z=-4/
                                              100;local$";while($q=$dr=rand()
                                             /7){$w+=$dw;$_=join$/,map{$Y=$_*
                                             $yr/$r;
  join""                                    ,map{$                  x=$_*$
 xr/$c;($                                   x,$y)=                 ($xc+$x
  *cos($                                   w)-$Y*               sin$w,$yc+
                                           $x*sin              ($w)+$Y*cos
  $w);$                                   e=-1;$                    a=$b=0
;($a,$b)   =($u-$v+$x,2*$a*               $b+$y)                    while(
$ u=$a*$   a)+($v=$b*$b)<4.5  &&++$e     <15;if                     (($e>$
  q&&$e<   15)||($e==$q and   rand()     <$dr))  {$q=$e;($d0,$d1)   =($x,$
  y); }                        chr(+(   32,96,+  46,45,43,58,73,37  ,36,64
 ,32)[$                        e/1.5]   );}(-$   c/2)..($c/2)-1;}   (-$r/2
 )..($     r/2)-1;select$",     $",$", 0.015;                       system
$^O=~m     ~[wW]in~x?"cls":     "clear";print                       ;$xc=(
$d0+15     *$xc)/16;$yc=($       d1+15*$yc)/                        16;$_*=
1+$z for                         $xr,$yr;$dw                     *=-1 if rand
()<0.02;                          (++$i%110                      )||($z*=-1)}

This beautifully formatted obfu produces a mind-boggling visual effect when run; you truly feel like you are flying through a mandelbrot! Just works out of the box on both Unix and Windows. Brilliant work. Two in a row from blokhead!

No 8.5: Propose. by Falkkin Aug 18 2004 rep:200+

#!/usr/bin/perl -w use strict; my$f= $[;my $ch=0;sub l{length} sub r{join"", reverse split ("",$_[$[])}sub ss{substr($_[0] ,$_[1],$_[2])}sub be{$_=$_[0];p (ss($_,$f,1));$f+=l()/2;$f%=l ();$f++if$ch%2;$ch++}my$q=r ("\ntfgpfdfal,thg?bngbj". "naxfcixz");$_=$q; $q=~ tr/f[a-z]/ [l-za-k] /;my@ever=1..&l ;my$mine=$q ;sub p{ print @_; } be $mine for @ever

Update: this one was added later after tye kindly pointed out that I had missed this heart-warming obfu.

When run, the above obfu asks: kristen, will you marry me?

Beautiful.

Believe it or not, this was a real marriage proposal, in the form of a Perl obfu, posted by Pennsylvanian CMU PhD student Falkkin to fellow Perl Monk Vortacist, aka Kristen. To applause and congratulations all round, Falkkin's innovative marriage proposal was publicly accepted by Vortacist just thirteen minutes later.

As pointed out by the eagle-eyed ambrus, this touching marriage proposal has since been immortalized in a phd comic strip.

No 8: There can be only one! by Erudil May 15 2000 rep:300+

#!/usr/bin/perl -w # there can be only one use strict; $_='$_={one(( one($")<<1)^one( $/))}{{one((one($;) <<($^=(one($/)>>1)>>1) +1)+one($/)>>1)}{{{one((( one($;)<<$^+1)+one($/)>>1)-$ ^)}{{{one(((one($;)<<$^+1)+one( $/)>>1)-1)}{one (one($"))}{{one ((one($;)<<$^)^ (one($")>>1)+1) }{one((one($;)< <$^)-$^)}{{one( ((one($;)<<$^)- $^)+1)}}{one((( one($;)<<$^+1)+ one($/)>>1)-1)} {one(($~=$=)<<1 ^one($")>>1)}{{ {one((one($;)<< $^)-one($/)-1)} {one(((one($;)< <$^+1)+one($/)> >1)-$^-1)}{one( one($"))}}{one( one($/)<<$^+1)} {one((one($;)<< $^)-one($/)-1)} {one(((one($;)< <$^+1)+one($/)> >1)-$^-1)}}}{{{one(((one($;)<<$^)-$^)-$^)}}}{one( one($"))}}{one(($~=$=)<<1^one($")>>1)}}{{one((one ($;)<<$^)-(one($")>>1)+1)}{one((one($;)<<$^)-(one ($")>>1)+$^+1)}}{{one(($~=$=)<<1^(one($")>>1)+$^+ 1)}{one((one($;)<<$^)-one($/)-1)}{one(((one($;)<< $^+1)+one($/)>>1)-$^-1)}}{one($=^(one($")>>1))';s ;{one;chr;g;y;{ne}}\012\040;.rd.;sd;eval;print;#1

Following on from perhaps the best first post ever made, namely My 2 cents worth, the master strikes again! This one (pun intended) must surely rate as the best ever second post.

No 7: 3-D Stereogram, Self replicating source. by Toodles Oct 15 2001 rep:300+

#!/usr/bin/perl # Copyright (c) Marcus Post, <marcus@marcuspost.com> # # # # $_=q,my(@f|@c|x$_=q.my(@f|@c|x$_=q.my(@f|@c|x$_=q.m(@f||@c|x$_=q.m(@f| +|@c|xx @w);@a=@f=<DAT%@w);@a=@f=<DAT%@w);@a=@f=<DAT%@w;@a=@f=<DAAT%@w;@a=@f=< +DAAT%% A>;seek(DATA|0!A>;seek(DAA|0!!A>;seek(DAA|0!A>;seek(DAA|0!!A>;seek(DAA +|0!!AA |0);@c=<DATA>;Y|0);@c<DATA>;Y||0);@c<DATA>Y||0);@c<DATA>Y|||0);@c<DATA +>Y|||| until(($_=pop(zutil(($_==pp(zuttil(($_==p(zuttil(($_==p(zutttil(($_==p +(zuttt @c))=~/^_/){};Qc))=~/^_/){};Qc)))=~/^_/{};Qc)))=~/^_/{};Qc))))=~/^_/{} +;Qc))) unshift(@a|$_)xnshift(@a|$_)xnshhift(a|$_)xnshhift(a|$_)xnshhiift(a|$_ +)xnshh ;for(1..3){pri%;for(1.3){pri%;ffor1.3){pri%;ffor1.3){pri%;ffor11.3){pr +i%;fff nt(shift(@c));!nt(shft(@c));!ntt(hft(@c));!ntt(hft(@c));!ntt(hftt(@c)) +;!nttt }for(@f){my($sY}for@f){my($sY}for@f){my($sY}for@f){my($sY}for@f){mmy($ +sY}foo );split//;$_=sz);splt//;$_=sz);splt//;$_=sz);splt//;$_=sz);splt//;$_== +sz);ss hift(@c);$_=~sQhift(c);$_=~sQhift(c);$_=~sQhift(c);$_=~sQhift(c);$_=~s +QQhiff /(.{15}).*/\1/x/(.{15})*/\1/x/(.{15})*/\1/x/(.{15})*/\1/x/(.{15}})*\1/ +xx/(.. ;@w=split//;fo%;@w=split/;fo%;@w=split/;fo%;@w=split/;fo%;@w=spllit;fo +%%;@ww r(@_){$w[$s+15!r(@_){$w[$s15!r(@_){$w[$s15!r(@_){$w[$s15!!(@_){$$w[s15 +!!!(@@ -$_]=(($w[$s]eY-$_]=(($w[$s]YY-_]=(($w[$s]YY-_]=(($w[$s]YY-_]=((($[$s] +]YY-__ q"|")?".":$w[$zq"|")?".":$w[$zq|")?"."::$[$zq|")??."::$[[$z|")???.::$$ +[[$z|| s]);$s++;}for(Qs]);$s++;}for(Qs];$s++;}}or(Qs];$$s+;}}orr(Qs]$$s++;}}o +rr(Qss 1..75){unless(x1..75){unless(x1.75){unnlss(x1.775){uulsss(x1.75){uuuls +ss(x11 $w[$_]ne''){$w%$w[$_]ne''){$w%$w$_]nee''{$w%$$w$_]nn''{{$w%$$w_]nnn''{ +{$w%$$ [$_]=$w[($_-1)![$_]=$w[($_-1)![$_=$w[[($_-)![$_==w[[($$_-)![$__w[[[($$ +_-)![[ ];}}print(joinY];}}print(joinY];}prinnt(joinY;}prinntt(joinY;}pinnntt( +joinYY ""|@w);print"\z""|@w);print"\z""|w);;print"\z"|w);;pprint"\z"|w;;pppri +nt"\zz n";}print@a;,;#n";}print@a;.;#n";priint@a;.;#n;priintt@a;.;#n;piinntt@ +a;.;## y!|zY\!%x!,Q!;#y!|zY\!%x!.Q!;#y!zY\!!%x!.Q!;#!zY\!!%x!!.Q!;#!z\!!!%x!! +.Q!;## s{Q.*\n}[]g;#<>s{Q.*\n}[]g;#<>sQ.*\nn}[]g;#>sQ.*\nn}[]]g;#>sQ.\nnn}[]] +g;#>ss eval;#EndFini!$eval;#EndFini!$eal;#EEndFin!$eal;;##nddFin!$ea;;###nddF +in!$ee __DATA__ 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000 000000000000110000000110000000000000000011100000000000000000 000000000001110000001110000000000000000111110000000000000000 000000000011110000011110000000000000001111111000000000000000 000000000011110000011110000000000000001111110000000000000000 000000000011110000011110000000000000001111100000000000000000 000001111111111111111111111110000000001111100000000000000000 000011111111111111111111111100000000000111100000000000000000 000111111111111111111111111000000000000111100000000000000000 000000000011110000011110000000000000000111100000000000000000 000000000011110000011110000000000000000111100000000000000000 000000000011110000011110000000000000000111100000000000000000 000000000011110000011110000000000000000011100000000000000000 000001111111111111111111111110000000000011100000000000000000 000011111111111111111111111100000000000011100000000000000000 000111111111111111111111111000000000000001100000000000000000 000000000011110000011110000000000000000001100000000000000000 000000000011110000011110000000000000000001100000000000000000 000000000011110000011110000000000000000000000000000000000000 000000000011100000011100000000000000000000000000000000000000 000000000011000000011000000000000000000011110000000000000000 000000000000000000000000000000000000000111111000000000000000 000000000000000000000000000000000000000111110000000000000000 000000000000000000000000000000000000000011110000000000000000 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000

This original idea of creating a Perl obfu stereogram produced rave reviews when posted.

The code is certainly mind-bogglingly clever and elaborate. Unfortunately, I've never been able to relax my eyes enough to see these stereogram thingos, so the (stunning if you can see it) visual effect of this obfu was lost on me.

Though obviously a brilliant coder, Toodles only posted four times and disappeared from PM shortly after stunning us with his original obfu.

No 6: Saturn by eyepopslikeamosquito Oct 10 2004 rep:300+

Note that this obfu is formatted with pre tags so that the PerlMonks default line-breaking of code at 70 characters does not spoil the visual presentation.

#!/usr/bin/perl
                                                                           ;;;;;;
                                                                       ;;;;;;;;;;;
                                                                   ;;;;;;;;;;;;;;;
                                                                ;;;;;;;;;;;;;;;;;
                                                             ;;;;;;;;;;;;;;;;;;;
                                                           ;;;;;;;;;;;;;;;;;;;;
                                                         ;;;;;;;;;;;;;;;;;;;;;
                                     +$I=sub{+s+^+     ;;;;;;;      ;;;;;;;;;
                                  $"x$_[1]+gem;$/x$_#   ;;;;        ;;;;;;;;
                               [0].$_.$/};$W=sub{$~=!q~            ;;;;;;;
                            ~.pop();system($^O=~Win?ClS:#         ;;;;;;;
                          'clear'),print,select$Z,$Z,$Z,!"       ;;;;;;
                         "||$~for@_};$H=sub{+join$/,map($_#     ;;;;;;
                        x$_[0],pop=~m-.+-g),!_};$_=!Mima,s--   ;;;;;
                       "@{['=9+)w'^RINGS]}\%;local@{[Saturn^# ;;;;;
                      wNXIBP]}"-see;s-^#!..+?$/(?=$"+;)--is  ;;;;
                     y-;-'-;s-\w-~-gi;$S=$_;#--Beautiful]  ;;;;
                     @S=m-.+-g;$N=1+.6-!th_,$--=-82-$---  ;;;
                    $_.=$"x-(y---c-$-)for@S;$R=sub{$i#  ;;;  -d
                    =0;join$/,map{$j=$%;join!_,grep#  ;;;  Rhea
                    !($j++%$_[$%]),m-.-g}grep!($i#  ;;;  -Titan
                    ++%$_[0]),@S};$L=join!_,map#  ;;;  -Huygens
                    ~~reverse.$/,@S;@R=(&$I(q-  ;;;  -&&20,051,
                    $_=_^q-q-),&$I(20,41-!q-  ;;;  -,$_=F|K),$
                    I->(15,31,$_=&$R(4-!q-  ;;;  -)),&$I(13-!"
                  ;;",28,$_=&$R(3)),&${  ;;;  _^_^I}(10,20-!"
                ;;;;;",$_=$R->(2)),q-  ;;;  -&&$S);@O=map&{"
              ;;;;;;  "&&$H}($_,&${  ;;;  R.!-_}($_))x$_,!"
             ;;;;;     "+2..2*~~2  ;;;  @Y=reverse@R#Dione
           ;;;;;;       &${m--  ;;;  S|A|T|U}(@R,$N)||!q-
         ;;;;;;;          b-  ;;;  &$W(@O[0,1,2,1,0!=!q-
        ;;;;;;;            ;;;;  -],!1!~~1);&$W($S.!q-
      ;;;;;;;;;        ;;;;;  -,$L,0.16)for$%..5+!q-
     ;;;;;;;;;;    ;;;;;;;;;    Cassini-;&{$W||q-
    ;;;;;;;;;;;;;;;;;;;;;;         -}(@Y,1.6)
   ;;;;;;;;;;;;;;;;;;;;
  ;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
;;;;;;;;;;;
  ;;;;;;

Ahem. This is mine. I am a space nut and had just finished watching Contact. I was deeply moved by the opening sequence of that movie, starting from the Earth, moving past Mars, Jupiter, Saturn, ..., the Milky Way, the Local Group, until the vast scale of the Universe and its billions of galaxies is slowly revealed.

The other primary influence was Erudil's famous camel code, which splits a camel into four camels. I naturally tried to top that, splitting Saturn into four, then nine, then sixteen Saturns, adding a back and forth tilting effect for good measure.

Luckily, I was also playing a lot of golf at the time, which was needed to compress the desired code into the Saturn shape. Once I had done that, I set about tweaking the code to match the Saturnian theme. For example:

$_=!Mima,s-- '=9+)w'^RINGS Saturn^wNXIBP S|A|T|U}(@R,$N)

I derived the Saturn shape from this beautiful Voyager space probe photograph.

No 5: spiraling quine by Len Jun 20 2002 rep:300+

Unix version:

#!/usr/bin/perl $_=' $q ="\ 47"; wh ile ($ ;= $z += .5 ){ %c= $r=0;$/ ="";whi le(2 0+ $z>($;+=.05)){$c{int$ _+ 2 6+ 2*($ r+= .0 2) * s in$ ;}{1 -$_ +1 0+ int $r*c o s $ ;} =1for(0. .1) }$ t =r ever se;$ /. =` c le ar `. " #! / usr /bi n/ pe rl \n\ $_ =$q \n" ; fo r$y (1..20){$c{$_} { $ y }? $ /.=chop$t : ($/ . =" \4 0") for(0. .53) ; $/. ="\n"}pri nt"$/$ q; s; ". chr(9 2)."s;;g;eval\n "} ';s;\s;;g;eval

Windows version:

#!/usr/bin/perl $_=' $q= "\4 7" ;wh ile($;=$z+=.5 ){ %c =$r =0;$/="";while( 21+$ z> ( $; +=.05)) {$c{i nt $ _+ 26 +2*( $r+=. 0 1 9 )*s in $; }{1 - $_ +10+int$r*c os$; }=1 f or(0..1)}$t=re v e r s e; $/. =`cl s` ." #! /u sr /bi n/ pe rl \n\ $_=$q\n" ;f or $y (1. .20){ $c {$ _ } { $y }? $ /.= chop$ t:( $/ . ="\4 0")for( 0..53 ); $ /.=" \n"}system("cls ") ;p ri nt "$/$q;s ;". c h r(92) ."s; ; g; eva l\n" } ';s;\s;;g;eval

A beautifully formatted obfu producing a dazzling visual effect when run. Well done Len.

No 4: find-a-func by Erudil Aug 29 2001 rep:300+

#!/usr/bin/perl -w # find-a-func use strict; $_='$;="per l";map{map {s}^\s+}} ;$_{$_}++unless(/[^a- z]/)}split(/ [\s,]+/)i f(/alpha. *$;/i../w ait/)}`$; doc\040$; toc`;;;@[=k eys%_;$; =20;$:=15;;for(0..($;*$:-1 )){$;[$_]="_" ;}until($%++>3*$;||@]>2*$:-3){@_=split(//,splice(@[,rand( @[),1));if(3>@_){next;}$~=int(rand($;));$^=int(rand($:)); $-=$~+$^*$;;my$Erudil=0;{if($Erudil++>2*$:){next;}$a=(-1, 0,1)[rand(3)];$b=(-1,0,1)[rand(3)];unless(($a||$b)&&$~ +$a*@_<=$;&&$~+$a*@_>=0&&$^+$b*@_<=$:&&$^+$b*@_>=0){re do;;}my$llama=0;;for(0..$#_){unless($;[$-+$a*$_+$b* $;*$_]eq$_[$_]||$;[$-+$a*$_+$b*$;*$_]eq"_"){$llam a++;last;}}if($llama){redo;}push@],join("",@_);f or(0..$#_){$;[$-+$a*$_+$b*$;*$_]=$_[$_];}}}@_ =sort@];unshift@_ ,"Find:","-"x5;for$a(0. .$:-1){for$b(0. .$;-1){$~=("a".."z") [rand(26)];$_ ="$;[$a*$;+$b]". $";s;_;$~; ;print;}$_=s hift@_|| $";;print$ ",$", $_,$ /;$_ =shi ft@_ ||$ ";pr int $"x $;, $"x $;, $", $", $_ ,$/;; ;}' ;;; s[\s+] $$g; eval; __DATA__ The use of the llama image in association with Perl is a trademark of O'Reilly & Associates, Inc. Used with permission.

Needs "perldoc" on the path. Can be quite slow to run as it mangles the output of "perldoc perltoc", but well worth the wait. Full deconstruction provided by grinder.

Another Erudil classic.

No 3: How to (ab)use substr by Erudil May 03 2001 rep: 400+

#!/usr/bin/perl -w # how to (ab)use substr use strict; my $pi='3.14159210535152623346475240375062163750446240333543375062'; substr ($^X,0)= substr ($pi,-6);map{ substr ($^X,$.++,1)=chr( substr($pi,21,2)+ substr($pi,$_,2))}(12,28,-18,-6,-10,14);map{$^O=$"x( substr ($pi,-5,2)); substr ($^O,sin(++$a/8)*32+ substr ($pi,-2)/2+1,1)=$_; substr ($^O,sin($a/4)*( substr ($pi,2,2))+ substr ($pi,-7,-5)-1,1)=$_;print"$^O$/";eval($^X.('$b,'x3). substr ($pi,-3,1).'.'. substr ($pi,9,2));}(map{chr($_+ substr ($pi,21,2))}( substr ($pi,8)x3)=~/../g);

Yet another Erudil classic. A work of art.

No 2: Things are not what they seem like. by Abigail Jul 13 2000 rep:400+

$; # A lone dollar? =$"; # Pod? $; # The return of the lone dollar? {Just=>another=>Perl=>Hacker=>} # Bare block? =$/; # More pod? print%; # No right operand for %?

Short. Elegant. Witty. A masterpiece from the inimitable Abigail.

Deconstruction provided by btrott.

No 1: camel code by Erudil Dec 06 2000 rep:700+

#!/usr/bin/perl -w # camel code use strict; $_='ev al("seek\040D ATA,0, 0;");foreach(1..3) {<DATA>;}my @camel1hump;my$camel; my$Camel ;while( <DATA>){$_=sprintf("%-6 9s",$_);my@dromedary 1=split(//);if(defined($ _=<DATA>)){@camel1hum p=split(//);}while(@dromeda ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;} $CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){ $camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift( @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if( defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@ camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\ 064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse; print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/; $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124 \1 50\145\040\165\163\145\040\157\1 46\040\1 41\0 40\143\141 \155\145\1 54\040\1 51\155\ 141 \147\145\0 40\151\156 \040\141 \163\16 3\ 157\143\ 151\141\16 4\151\1 57\156 \040\167 \151\164\1 50\040\ 120\1 45\162\ 154\040\15 1\163\ 040\14 1\040\1 64\162\1 41\144 \145\ 155\14 1\162\ 153\04 0\157 \146\ 040\11 7\047\ 122\1 45\15 1\154\1 54\171 \040 \046\ 012\101\16 3\16 3\15 7\143\15 1\14 1\16 4\145\163 \054 \040 \111\156\14 3\056 \040\ 125\163\145\14 4\040\ 167\1 51\164\1 50\0 40\160\ 145\162 \155\151 \163\163 \151\1 57\156\056

The highest rated PM node of all time. For a long time, you could buy thinkgeek T-shirts with this obfu printed on it! They seem to be out of print now though, at least the thinkgeek link is broken. I loved Erudil's response to all the attention:

<Elvis> Thankyew ... Thankyew verra much! </Elvis>

References

Updated Dec 18 2014: Added obfu 8.5 which I had missed in my original post (thanks tye).

Replies are listed 'Best First'.
Re: The Top Ten Perl Obfus (#8.5)
by tye (Sage) on Dec 18, 2014 at 05:06 UTC

    Having special access, I can confirm that you were almost perfect.

    No 8.5: Propose. by Falkkin August 18, 2004 rep: 200+

    And "Top 11" is a good cut-off since there is a 30-point reputation drop-off after that.

    - tye        

Re: The Top Ten Perl Obfus
by trippledubs (Hermit) on Dec 18, 2014 at 05:13 UTC
    The 3d-stereogram should be #1!!!! That is just.. amazing. That should be posted at every Perl vs Python node, stamped on T-shirts, tattoo'd on people, etc
Re: The Top Ten Perl Obfus
by Anonymous Monk on Dec 17, 2014 at 04:32 UTC
    "So sorry, but, y'know ..." it has by now been a helluva long time since I have been obliged to seriously-regard anything that was presented to me by means of a line-printer. So why exactly, prithee, am I expected to give-a-damn about such things now?
      Those who will not remember History are condemned to learn from it.

      Give me any more lip, son, and I will serialize you to a flakey UART atached to 486-D2 with power issues.

      ----
      I Go Back to Sleep, Now.

      OGB

        Sounds a bit like Full Metal Monks ;-)

        Private Sundial: "...it has by now been a helluva long time since I have been obliged..."

        Drill instructor OGB: "...son...I will serialize you to a flakey UART..."

        My best regards, Karl

        «The Crux of the Biscuit is the Apostrophe»

      "So sorry, but, y'know ..." it has by now been a helluva long time since I have been obliged to seriously-regard anything that was presented to me by means of a line-printer. So why exactly, prithee, am I expected to give-a-damn about such things now?
      It was suggested above that this was posted anonymously by sundialsvc4. Well, he doesn't usually post anonymously (except by accident), plus the use of ordinary double quotes (rather than “these”) is atypical. On the other hand, a number of specific words do suggest sundialsvc4:
      • y'know: used twice by sundialsvc4 though also used by others. Inconclusive.
      • helluva: used five times by sundialsvc4. BTW, I almost choked when I read this: “done a helluva lot of coding over the past 30 years”. Since helluva is rarely used by others, use of this word suggests sundialsvc4.
      • give a damn: this is a favourite of sundialsvc4, as in I don’t give a damn about “experience points!™” and “frankly, my dear, I don’t give a damn”. Use of this phrase suggests sundialsvc4.
      • prithee: this word is frequently used by sundialsvc4, very rarely used by others, a bit of a giveaway.
      Though certainly not proven, on balance I have to agree with anonymonk that this post was probably authored by sundialsvc4. If you are listening sundialsvc4, can you shed further light on this mysterious anonymous post?

      "So sorry, but, y'know ..." it has by now been a helluva long time since I have been obliged to seriously-regard anything that was presented to me by means of a line-printer. So why exactly, prithee, am I expected to give-a-damn about such things now?

      If you don't care, then don't post -- its the same as not caring, sundialsvc4

      I told you already to make this test.

      «The Crux of the Biscuit is the Apostrophe»

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://1110292]
Approved by marto
Front-paged by Old_Gray_Bear
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (12)
As of 2017-10-20 13:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My fridge is mostly full of:

















    Results (263 votes). Check out past polls.

    Notices?