JAPH ( engelska Just Another Perl Hacker ) är ett kort Perl -program som skriver ut raden Just Another Perl Hacker, (från engelska - "Just another Perl hacker ,"; kommatecken i slutet är valfritt).
JAPHs är ett klassiskt exempel på svårläst kod för programmets effektivitet (eller till och med uppseendeväckande). Dessutom ges JAPH som en demonstration av flexibiliteten och kraften i Perl-språket.
JAPH utan läsbarhet:
print "Bara ännu en Perl-hacker,\n" ;Inkluderar JAPH i svårläst kod:
$_ = '987;s/^(d+)/$1-1/e;$1?eval:print"Bara ännu en Perl-hacker,"' ; eval ;Avkoda JAPH från krypterad sträng:
$_ = "krJhruaesrltre ca cnP,ohet" ; $_ .= $1 , skriv ut $2while s/(..)(.)// ;Det verkar inte ha något med JAPH att göra:
$_ = "wftedskaebjgdpjgidbsmnjgc" ; tr /az/o h , turtleneck Phrase Jar !/ ; skriva ut ;Använder endast nyckelord från Perl-syntax:
inte exp log srand xor s qq qx xor s x x längd uc ord och skriv ut chr ord för qw q gå med använd sub bunden qx xor eval xor print qq qq xor int eval lc q m cos och skriv ut chr ord för qw y abs ne öppen bunden hex exp ref y m xor skalär srand skriv ut qq q q xor int eval lc qq y sqrt cos och skriv ut chr ord för qw x printf varje returnera lokal x y eller skriv ut qq s s och eval qs undef eller okt xor tid xor ref skriv ut chr in lc foreach qw y hex alarm chdir kill exec return y s gt sin sort split # sub j (\$){( $ P , $V ) = @_ ; while ( $$P =~ s: ^ ([()]) :: x ){ $V += ( '(' eq $1 )? - 32 : 31 } $V += ord ( substr ( $$P , 0 , 1 , "" )) - 74 } sub a { my ( $I , $K , $ J , $L ) = @_ ; $I = int ( $I * $M / $Z ); $K = int ( $K * $M / $Z); $J=int($J*$M / $Z ); $L = int ( $L * $M / $Z ); $G = $ J - $I ; $F = $L - $K ; $E = ( abs ( $ G ) >= abs ( $ F ))? $G:$F ;( $E < 0 ) och ( $ I , $K ) = ( $J , $L ); $E ||= .01 ; för ( $i = 0 ; $i <= abs $E ; $i ++ ){ $D -> { $K + int ( $i * $ F /$E) }->{$I+int($i*$G/ $E )} = 1 }} sub p { $D = {}; $ Z = $z || .01 ; map { $ H = $_ ; $I = $N = j $H ; $K = $O = j $H ; medan ( $H ){ $q = ord substr ( $H , 0 , 1 , "" ); om ( 42 == $q ){ $J = j $H ; $L = j $H } annars { $q -= 43 ; $L = $q %9 ; $J = ( $q - $L ) / 9 ; $L = $q - 9 * $J - 4 ; $J -= 4 } $J += $I ; $L += $K ; a ( $I , $K , $J , $ L ); ( $ I , $K ) = ( $J , $L )} a ( $I , $K , $N , $O )} @_ ; min $T ; map { $y = $_ ; map { $T .= $D -> { $y } -> { $_ }? $\ : ' ' }( - 59 .. 59 ); $T .= "\n" }( - 23 .. 23 ); skriv ut "\e [H$T" } $w = eval { r kräver Win32::Console::ANSI }; $b = $w ? '1;7;' : "" ;( $j , $u , $s , $t , $a , $n , $o , $h , $c , $k , $p , $e , $r , $l , $C ) = split /}/ , 'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J' . 'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI' . '}Tn*JQ]wRAI*JDnR8QAU}wT8KT' . ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*' . 'JBI/KI}T8@?PcdnfgVCBRcP' . '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP[' . 'wQ}*JWeOe{n*EERk8;' . 'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe' . 'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ' . 'ZP[Z' . 'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE' . '[Z\U' . '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00' . 'BCB*' . 'DMKKJIR[Q+*EJ0*EK' ; sub h { $\ = qw(% & @ x) [ int rand 4 ]; map { printf "\e[$b;%dm" , int ( rand 6 ) + 101 - 60 * ( $w || 0 ); system ( "cls" ) om $w ;( $A , $S ) = ( $_ [ 1 ], $ _ [ 0 ]);( $M , @ ,) = dela '}' ; för ( $z = 256 ; $z > 0 ; $z -= $S ){ $S *= $A ; p @ ,} sov $_ [ 2 ]; while ( $_ [ 3 ] && ( $ z += $ S ) <= 256 ){ p @ ,}}( "" . "32}7D$j" . "}AG" . "$u}OG" . "$s}WG" . "$t" , "" . "24}(" . "IJ$a" . "}1G$n" . "}CO$o" . "}GG$t" . "} QC" . "$h}" . "^G$e" . "})IG" . "$r" , "32}?" . "H$p}FG$e}QG$r" . "}ZC " . "$l" , "28}(LC" . "" . "" . "$h}:" . "J$a}EG" . "$c" . "}M" . "C$k} ZG" . "$e" . "}" . "dG$r" , "18" . "}(" . "D;" . "$C" )}{ h ( 16 , 1 , 1 , 0 ); h ( 8 , .98 , 0 , 0 ); h ( 16 , 1 , 1 , 1 ) ; h ( 8.0 , 0.98 , 0 , 1 ); göra om } ### #skrivet 060204 av #liverpole @@@@@ @@ #@@@@@@@@@@@@Använder endast skiljetecken (inga alfabetiska tecken eller siffror):
`$=` ; $_ =\ % !;($ _ ) = /(.)/ ; $= =++ $| ;( $. , $/ , $, , $\ , $" , $; , $^ , $# , $~ , $* , $: , @% ) = ( $! =~ /(.)(. ).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/ , $" ), $= ++ ; $. ++ ; $. ++ ; $_ ++ ; $_ ++ ;( $_ , $\ , $, ) = ( $~ . $" . "$;$/$%[$?]$_$\$,$:$%[$?]" , $" & $~ , $# ,); $, ++ ; $, ++ ; $^ |= $" ; `$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\ $"$^$~$*.>&$=`