Got some code which would take a Perl grand master to understand without running it? Post it in this section so we can stare at it in awe.

Word of warning, though: Don't be too cocky with your post — almost inevitably someone will post a reply that does the exact same thing in even fewer characters!

New Less than Readable Code
A string of pe(a)rls
1 direct reply — Read more / Contribute
by golux
on Mar 12, 2012 at 16:36
    use strict; use warnings; use feature 'say'; ( ) ,say map{ ( ) ,s <..> () ,$ _=lc crypt$_,$&; () ,s [[fy34].+] () ,s [[bg]|(?<=r$)] ( ) ,and $_} ( ) ,@ .= qw = JuzXb NO9(V PeKVj ACUcu =
    say substr+lc crypt(qw $i3 SI$),4,5
JAPH's another Perl hacking
No replies — Read more | Post response
by locked_user zhutingting
on Feb 15, 2012 at 20:48

    New monk here and my first node.

    #!/usr/bin/perl print$_?chr(length()+96):' 'for<<''=~/(?<=D).*?(?=D)/g; ODOOOOOOOOOODOOOOOOOOOOOOOOOOOOOOODOOOOOOOOOOOOOOOOOOOO OODOOOOOOOOOOOOOOOOOOODOOOOOOOOOOOOOOOOOOOODDOOOOOOOOOO OOOOOOOOODODO0OOOOOO000OOODOO000000OOOO0OODOO0OOOOOOOOO ODOOOOOOOOOOO0OOOOO0OOD0OOOOO0OOOOO0OOO0OOOOO0OOOOOOOOO OODOOOOOOOODO0OOOO0OOOOO0OOOO0OOOOO0OOO0OOOOO0OOOOOOOOO OOOOOOOOOOOOO0OOOO0000000OOOO000000OOOO0000000ODOOOOODO OOODOOOOOOOOO0OOOO0OOODO0OOOO0OOOOOOOOO0OOOOO0OOOOOOOOO OOOOOOO0OOOOO0OOOO0OOOOO0OOOO0OOOOOOOOO0OOOOO0OOOODDOOO OOOOOOOO00000OOOOO0OODOO0OOOO0OOOOOOOOD0OOOOO0OOOOOOOOO OOOOOOOOOOOODOOOOODOOOOOOOOOOOOOOOOOODOOOOOOOOOOOODDOOO ODOOOOOOOODODOOODOOOOOOOOOOODOOOOODOOOOOOOOOOOOOOOOOODO

    Use Ctrl-F to find another JAPH ;-)

For this Valentine's day...
1 direct reply — Read more / Contribute
by sandeepsasi
on Feb 03, 2012 at 21:52
    perl -le 'map{$y=$_/12;print map{("@"," ")[-38>$_||$_>-36&&($_**2/800+ +$y**2-1)**3>$_**2*$y**3/1600&&0.2*($_-48)**2-15>15*$y||15*$y>($_-48)* +*2-12]}-40..60}reverse-15..15'
Alien JAPH :)
1 direct reply — Read more / Contribute
by trizen
on Jan 31, 2012 at 16:08
    read*DATA,$_,13**+3;y #{} {}{};s>[\s*]+>>g;$i=length;s/ (.{$i})(.)/$2$1/gx while$i--;eval;; ;for(q\just \.q)another),q)perl hacker)){ for(split$!){$_=$$h{$_}?do{$_=$$h{$_};;;;;;;y <A-Za-z0-9+/>/ -_/&&unpack'u',chr(length()*.75+32 ).$_}:$"x$];$w=(sort{$b<=>$a}map+length,split$\=$/) [$]-$]];s/^(.*?)\s*$/sprintf'%-*s',$w,$1/egm;push@f,[ [split$\],$w]}for$x($?..-//+$]){push@{$x[$x]},@{$f[$_][ $?]}?pop@{$f[$_][$?]}:$"x$f[$_][//]for$?..$#f}$s.="@{+pop @x}$/"while@x;$k=$g=chr(ord$^);for(split$\,$s){$s=$g;$$s=$_ ;++$g}$==135;print$w="\e[H","\e[J";{print$w;print$"x$=,$$_? chop$$_:''for$k..$g;select$,,$,,$,,.01;--$=&&redo}}__END__!!! C**wX*yX****o*f*****ig*pv*AoB**LhCffX*g*I**I*lyI****8*g*FC8L8 8**v*I*LC*g9*8I*o81ga***ICXp*I*Ig8***CIv*wF*B*8*I*8*wX**gCvIA g*LA,L>8*Cg*CCyy*w**cIi**F>*L=8**L*X**='CgCLfg*vC8wXgX*Kef*9* B8C**I*g*gvIALKX*L**C*vy*>I*gX***I*Xg8**w1*}CA*=y8*y******lAyw* =8C*gy*f****f**y*8**loK****K88A**8f=,*II****'g*f*F*F*wf*v**gvCA C8*y*y*LIgK******Xf''***'*I***A*X=yiov***g>C*,*8*g****IAgvA*I*X Fj**gCy*8Xv**89v'*XI*ILy**=A**C1A*8y*v*o**v9KvXyw**f**f**X8**C* *Fy******C*C9**L*vf**C*vF*8gg$*y**v*8v**AL**II*ILKsK*Xyv**gCI** 8**y fI**K*F*8**L*,*I9*C**8*BiFw*fg,A8h8*gF' B*** vg*L *8*C*8*F*fX*CC8*g*B***,Iv88A***** gC8X *1*C C***IF*u******CX8**L>Xi=*** *C** C*v8* **ICI8I*>*KC***8IF*B*8* *oIF* **K** Av*ALvg**C*I*g**'*wBA **FLg *'1''* f=*yLLI*****'ff'* *fo*9g *IA>y F***v*8FIoy'*C* *Lf** I*8f8v *k'y8F*=vw*>g **Kf** vy8*X> *K*L*XgKw*' o*g'vF *1By' gBv*LI*** XX8** KB***' Xv**A'**8 v***of ilgCgC* **'***f y*BA*8i **LI*y* *8IoIv* *oC,y*g ,**gI**= *yC8i 'I8g*L>8 '9{8gB*>A F*18I **8A=*v** *yA'*1pf** *wv** ****,I8l*v *IAB*AC*f**f I**yA** yF*C1*Avp*** **gCv'*****KIyK******8C'g9I**yFK*IL8*A=vo*y C*ABX*F*fv8***AC,*9***wy***IKI****,Kn=i** **Xf8w*L1*w*9***8*,ygf*X**88oKCIC***I** I*8*'*F8IL***CL**y*>*>I*****fCC*8LC*y **XC***A*I*g*C*FA*w****Bv**CfyA*I g*I*y*****A*BI9'g**gy*Iw*L8*lgX *IXXX*A**X**8g*I88*I***B*i*** *y**X*FXAyg****Avgo*F*F*F *XAg*gC*i****,*LI**>* IK*I*Xg****tv**** XCA**8pr*CIg* A*K=***y*
too simple....
No replies — Read more | Post response
by Oromis92
on Jan 24, 2012 at 06:36
    #!/usr/bin/perl while (1) + { ($s,$m,$h)=localtime(); if(length($h)==1){$h="0".$h} $q=$h;$r=$h;$h1=s +ubstr($h,0,1); $h2=substr($h,1,1);if (length($m) == 1){$m="0".$m} $w=$m; $t=$m; $m1=s +ubstr($m,0,1); $m2=substr($m,1,1); if (length($s) == 1) {$s="0".$s} $e=$s;$y=$s;$s1=s +ubstr($s,0,1); $s2=substr($s,1,1);while ($h1>0) { if ($h1 %2 == 0) { $str1.=0; } else + { $str1.=1; } $h1=int($h1/2);} $str1.="0" while length($str1)<4;$str1=reverse($str1) +;while ($m1>0) { if ($m1%2 == 0) { $str2 .= 0; } else { $str2.=1; } $m1 = int($m1/2); + } $str2.= "0" while length($str2) < 4; $str2 = reverse($str2); while ($s1>0) { if ( +$s1 % 2 == 0) {$str3.=0;} else {$str3.=1;} $s1=int($s1/2); } $str3 .= "0" while leng +th($str3) < 4; $str3=reverse($str3);while ($h2>0) { if ($h2 %2 == 0){$str4.=0; } else + {$str4.= 1; } $h2 = int($h2/2); } $str4 .= "0" while length($str4) < 4; $str4 = r +everse($str4); while ($m2>0) { if ($m2 % 2 == 0){ $str5 .= 0; } else { $str5.=1; }$m2 +=int($m2/2); } $str5 .= "0" while length($str5) < 4; $str5 = reverse($str5); whil +e ($s2>0) { if ($s2%2 == 0){ $str6 .= 0;} else {$str6 .= 1; } $s2= int($s2/2); } $str +6 .= "0" while length($str6) < 4;$str6=reverse($str6);while($q>0){ if ($q % 2 == 0) { + $str7 .= 0; } else { $str7 .= 1; } $q = int($q/2); } $str7 .= "0" while length($str7 +) < 6; $str7 = reverse($str7); while ($w>0){ if ($w % 2 == 0){ $str8 .= 0; } else{ $s +tr8 .= 1; }$w= int($w/2);} $str8.="0" while length($str8) < 6; $str8=reverse($str8); +while ($e>0) { if ($e % 2 == 0) { $str9 .= 0; } else { $str9 .= 1; } $e = int($e/2); +} $str9 .= "0" while length($str9) < 6; $str9 = reverse($str9); @x1 = split//,$str1; +@x2 = split//, $str4; @x3 = split// ,$str2; @x4 = split//, $str5; @x5 = split//, + $str3; @x6 = split//, $str6; @x7 = split//, $str7; @x8 = split//, $str8; @x9 = s +plit// ,$str9; print "\n\n\n $x2[0] $x4[0] $x6[0] \n $x2[1] $x3[1] $x4[1] $x +5[1] $x6[1]" ; print "\n $x1[2] $x2[2] $x3[2] $x4[2] $x5[2] $x6[2] \n $x1[3] $x2[3] $ +x3[3] $x4[3]"; print " $x5[3] $x6[3] \n\n\n\n\n @x7\n @x8\n @x9\n\n\n\n\n $r:$t:$y\n\ +n\n"; sleep 1; ( $str1, $str2, $str3, $str4, $str5, $str6, $str7, $str8, $str +9 ) = ""; }
ASCII art maker
2 direct replies — Read more / Contribute
by thomas895
on Dec 24, 2011 at 16:56

    Albeit very simple, I thought I'd share.

    #!/usr/bin/perl my%cd=reverse('a'=>'$','='=>'5','7'=>"'",'d'=>'1',','=>'%','2'=>'r','y +'=>'(','1'=>')','"'=>'3','t'=>'@','e'=>'{','>'=>'4','s'=>'n',"\n"=>'h +','c'=>'"','('=>' ','$'=>';','\\'=>'c','r'=>'d', ':'=>'9','h'=>"\n",'.'=>',','@'=>'t','['=>'\\',';'=>':','f'=>'m','i'=> +'}','n'=>'y',' '=>'s','{'=>'>',']'=>'l','3'=>'[','%'=>'o','9'=>'f','m +'=>'=','_'=>']','l'=>'a','4'=>'2','p'=>'.', ')'=>'e',"'"=>'i','}'=>'7','5'=>'_','o'=>'p');my$r='';while(<DATA>){$r +.=$_;}my$p='';foreach(split("",$r)){$p.=$cd{$_};}chop$p;eval($p)and(p +rint($@)); __DATA__ =(s;" $ds5sioi:h=(s;1{mss5s\hssss\s3n9_3%s3"9)3%s3y9)3sl%hssss\s3n923%s3"9[3 +%s3y9)3sl%hssss\s3n9r3%s3"9'3%s3y9)3sl%hssss\s3n9)3%s3"9f3%s3y9)3sl%h +ssss\s3n9r3%s3"9'3%s3y9)3sl%hssss\s3n9r3%s3"9'3%s3y9)3sl%hssss\s3n9r3 +%s3"9'3%s3y9)3sl%hssss\s3n9r3%s3"9r3%s3n9[3%s3"9r3%s3y9)3sl%hssss\s3n +9r3%s3"9r3%s3n9[3%s3"9r3%s3y9)3sl%hssss\s3n9r3%s3"9r3%s3n9[3%s3"9r3%s +3y9)3sl%hssss\s3n9r3%s3"9'3%s3y9)3sl%hssss\s3n9r3%s3"9'3%s3y9)3sl%hss +ss\s3n9r3%s3"9'3%s3y9)3sl%hssss\s3n9r3%s3"9'3%s3y9)3slhl:h=(son"s5s h +ssssns54s3s3%hssss"s54s;" $d%hssssys54s3cy3he:hhmpd{$" s t;1{mes>h=(stas5st;]:hssssmpd{$" s taes>hssssssss=(s s;@%s;$ses5sn.a}@ s393%s;]se:hssssssssmpd{$" s s)s,,s;$ses>hssssssssssss.d}y@s;n">;@7:hhssssssss7hssss7h7ssssshsshs +hshshsh

    (Note: you may want to download it, or some of it won't work)
    Enjoy! :)

    ~Thomas~
Cubic JAPH
No replies — Read more | Post response
by trizen
on Dec 20, 2011 at 23:20
    +($\,$})=($/,q$@$);@@=split$!=>($@ =$}|'/'=>$:=$@,++$@,$@++,$~=(++$@=> ++$@),$.=$",$_=$/|$}.(+(++$@=>++$@). $~).++$~.$..($;=$}|'!').($^='.'|$}).+ ('/'|$}).$~.($@=$}|'(').($"='%'|$}).(+ +++$:=>++$:,+++$:).$..($:^'"').$".$:.(q },}|$}).$..$@.$;.($}.$}|'#+').$".$:.q|,| );sub f{print@_}sub i(_){my($l,$j)=0;my( $x,$y,$z,$c,$h,$v,$d,$s,$p,$o)=(+@{+pop} ,qw w+ -w,qw\| /\,sub{$j=$_[0];$l+$j>+@@ &&($l=$?);@@[do{$l=$j+$l;$l-$j..$l-1}]}, $?);f$.x($z+1),$c,$h x$x,$c;f$.x($z-$_+1 ),$d,$s->($x),$d,$s->($_-1-$p),$_>$y?!$p &&++$p?do{$o=$z-$y;$c}:$p++?$d:$c:$v for 1..$z;f$c,$h x$x,$c,$p?($s->($z-$o),$d): ($s->($z),$z<$y?$v:$c);f$v,$s->($x),$v, ,$z-1>=$y?$_>=$z?($s->($x),$c):($s->($ z-$_-$o),$d):$y-$_>$z?($s->($z),$v):( $s->($y-$_),$y-$_==$z?$c:$d)for+1..$ y;f$c,$h x$x,$c}+i,,for[24,24,24],[ 1,24,0],[24,1,0],[1,0,24],[24,3,1]
Vec JAPH
No replies — Read more | Post response
by trizen
on Dec 19, 2011 at 23:07
    $_ = [ 74, 116, 113, 113, 28, 92, 104, 104, 108, 95, 91, 103, 20, 67, 87, 99, 92, 15, 86, 78, 79, 86, 79, 91, 20, 19, 00, 73, ]; {vec(${print${$j},$/;$j},$i++ ,8)=$$_[$i]+$i;$$_[$i]&&redo}

    or
    $_=[$j=#]; 101, 98, 102, 108, 28, 69, 111, 108, 108, 23, 87, 99, 99, 103, 90, 86, 98, 15, 62, 82, 94, 87, 10, 81, 73, 74, 81, 74, 86, 15, 2, 31, 6, 17, 0, $i=$j-$j]; {vec($j,$i++,8)=$$_[$i]+$i;$$_[$i]&&redo||`$j`}
JAPH from built-in keywords
4 direct replies — Read more / Contribute
by trizen
on Nov 28, 2011 at 16:14
    Who said that Perl doesn't have a clean syntax? :)
    join eval tell rand reverse ord chr eval split xor uc prototype eval lcfirst join chmod kill eval ref split sprintf reverse times xor not eval and srand tell sqrt formline eval ord lcfirst ucfirst length glob gmtime exp defined caller or binmode log ord abs lc sqrt study alarm split time or formline cos ne rewinddir kill chdir reset prototype split sqrt ord int localtime abs oct pack pop eq scalar print telldir open unpack return and unlink write chroot hex bless utime split chown split close rmdir join exp fileno getc sleep redo glob mkdir stat ne pack reverse getpwnam next lstat gethostent and getpgrp eq log ord time xor chr undef and eval caller and printf srand lstat chown chdir syscall open select eq -w closedir sleep chr split and quotemeta reset require ne closedir sleep chr undef or pack unpack length study length umask readpipe pos xor defined join system and die or do exit if defined require hex defined undef or sprintf localtime cmp time or abs time and undef and open exp getc fileno system caller eof rewinddir readpipe return study defined kill die wantarray and readlink eof readpipe split eval warn join study abs localtime oct log time or reverse xor open 0; print chr ord while readline 0 ,;print chr abs length time for cos length defined

    P.S. Works with perl>=5.14.1.

An obfu by any other name
2 direct replies — Read more / Contribute
by teamster_jr
on Nov 27, 2011 at 17:30
    $_='my($w,$h,$x,$y,$z,$b,$v,$q,@s,@u,@a,@d)=(200,350,1,0,1,32000,chr(3 +9),65521," 2582500861661521092082371081121531251811863301540361932582502020800771 +0624914813 6182133125230167124168161144241159090126154180197177188164129112226165 +1041421741 5419817714816414713424715507812817116320815809016217615419418718021414 +7111233224 172120142189","1734941700001632042184103200220081061764941740001632042 +2541031202 2011103213411176080051105147303310216047160213390060134162067278329162 +1141621443 1429918612011712529031715009015116230328116813214712729031729412603409 +7");map{@d =map$_-144,/.{3}/g;while(my($a,$b,$c,$d,$e,$f)=splice@d,0,6){for(my$t= +0;$t<=1;$t +=.005){$u[$b+$t*($f*$t+$d)][$a+$t*($e*$t+$c)]=$z}}$z++}@s;sub{while(m +y$n=pop){$ u[$n/$w][$n%$w]&&next;$u[$n/$w][$n%$w]=$z;push@_,$n+1,$n-1,$n-$w,$n<$w +*$h?$n+$w: $n}$z<5&&$z++}->(10*$_)for(1228,550,4005,2816,6943);$h+=10;for(1..$h){ +@d=(1,@{$u [$_]||[]});push@a,map{$y=($y+($x=($x+($z=($d[$_]||1)-1))%$q))%$q;$z}0. +.$w}@u=@a; $h=pack"N2C5",$w,$h,8,3;$w="x\1";while($z=@d=splice@u,0,$b){$w.=pack"C +SSC*",!!($ b-$z),$z,~$z,@d};$w.=pack"N",$x+($y<<16);for$b(0..255){$b=(($b&1)*0xED +B88320)^($ b>>1)for 0..7;push@u,$b}open(F,">rose.png");binmode F;print F pack("H* +","89504e4 70d0a1a0a");print F pack("N",-4+length).$_.pack"N",sub{$w=$h=0xFFFFFFF +F;$w=$u[($ w^$_)&0xff]^($w>>8)for unpack"C*",$_;$w^$h}->()for"IHDR$h",pack("H38", +"504c54450 00000003000b200006f0000004"),"tEXtComment\0".join($/,unpack("(a80)*"," +\$_=$v$_$v ;s#\$/##g;eval")),"IDAT$w","IEND"';s#$/##g;eval

    (generates rose.png)
    Updated to work in 5.8 & golfed some


Set the new obfuscation standard
Title:
code@?#!:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":


  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.