Solo otro hacker de Perl

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Frivolous Perl program

Simplemente otro hacker de Perl, o JAPH, generalmente se refiere a un programa de Perl que imprime "Simplemente otro hacker de Perl," (la coma es canónica pero ocasionalmente se omite). Los programas cortos de JAPH a menudo se usan como firmas en foros en línea o como diseños de camisetas. La frase o el acrónimo también se usa ocasionalmente (sin código) para una firma.

Los programas JAPH se realizan clásicamente usando métodos extremadamente ofuscados, en el espíritu del Concurso C ofuscado. Más recientemente, a medida que el fenómeno se ha vuelto muy conocido, la frase se usa a veces en ejemplos ordinarios (sin ofuscación).

La idea de usar pequeños programas Perl que imprimen una firma como una firma fue originada por Randal L. Schwartz, en sus publicaciones en el grupo de noticias comp.lang.perl. Escribió muchos de los JAPH que se muestran a continuación.

Ejemplos

Programa JAPH sin ofuscación:

impresión "Sólo otro Perl hacker,";

Incrustación de JAPH en código opaco:

$_=987;s/^(d+)/$1-1/e;$1?eval:print "Sólo otro Perl hacker,";eval;

Decodificación de JAPH a partir de una cadena literal transpuesta:

$_="KrJhruaesrltre c a cnP,ohet";$_.=1 dólar,impresión2 dólares s/(..)(.)//;

Imprimiendo JAPH como procesos separados:

para $i ()0..4) {} si ()!tenedor) {} $i == 0 o no {} SIG{}INT} = sub {} impresión "J" } } o $i == 1 o no {} SIG{}INT} = sub {} impresión "A" } } o $i == 2 o no {} SIG{}INT} = sub {} impresión "P" } } o $i == 3 o no {} SIG{}INT} = sub {} impresión "H" } } ; dormir $i; último; }}matar INT = dólares;

Aparece como si hiciera algo completamente ajeno a la impresión de JAPH:

$_ = "wftedskaebjgdpjgidbsmnjgc";tr/a-z/oh, cuello de tortuga Frase Jar!; impresión;

Procesos de bifurcación para imprimir una letra cada uno en el orden correcto:

@P=división//,".URRUUc8R";@d=división//,"Nrekcah xinU / lreP rehtona tsuJ";sub p{}@p{}"r$p","u$p"}=()P,P);tubería"r$p","u$p";++$p;($q*=2)+=$f=!tenedor;mapa{}$P=$P[$f^ord()$p{}$_})"6];$p{}$_}=^$P/ix?$P:close$_}llaves%p}p;p;p;p;p;mapa{}$p{}$_}=/^[P.]/"cerca$_}%p;Espera. hasta¿$?;mapa{}/^r/"}%p;$_=$d[$q];dormir rand()2)si/S/;impresión

Usando solo palabras clave de Perl (sin puntuación):

no exp log Srand xor s qq qx xors x x longitud Uc ord y impresión chrord para qw q Únase uso sub atado qxxor eval xor impresión qq q q xor inteval lc q m # y impresión chr ordpara qw Sí. abdominales Ne abierto atado Hex expref Sí. m xor scalar Srand impresión qqq q xor int eval lc qq Sí. Sqrt #y impresión chr ord para qw x printfcada uno retorno local x Sí. o impresión qqs s y eval q s undef o oct xortiempo xor ref impresión chr int ord lcen adelante qw Sí. Hex alarma chdir matarexec retorno Sí. s gt pecado especie división

Usando solo puntuación, sin caracteres alfanuméricos. Esto se interrumpe después de Perl 5.30.0, ya que el uso de $# y $* genera errores fatales. Este JAPH fue escrito por Eric Roode y solo funciona en sistemas Unix y similares a Unix:

`$=`;$_=%!¿Qué?)=/(.)/;$==++$ Tortura;($.,$/,$,,#,$",$;,$^,$#,#,$*,$:,@%)=()¡$!=(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.),$"),$=++;$.++;$.++;$_++;$_++;($_,#,$,)=()#.$"."$;$/$%[$?]$_$$,$:$%[$?]",$""#,$#,);$,++;$,++;$^$";`$_$$,$/$:$;$~$*$%[$?]$~$*${#}$%[$?]$;$$"$^$~$*

Uno mucho más corto, usando solo puntuación, basado en el módulo EyeDrops:

' '=()'(? {} '.()"-)@.)@@@@@@@@@@@@@@@)@@@@@@@@@@@@@@@@@@ '^[][]@]@]()@@@]@%[`}%@@@@@@%[ ')." ')

Arte ASCII (para que este código con forma de dromedario funcione, el tamaño de la consola debe establecerse en al menos 119 × 48):

 # sub j($){($ P,$V)= @_;mientras()$$P=s:^ ([()])::x){ $V+=()'(eq1 dólar)?-32:31 }$V+=ord() substr() $$P,0,1,")-74} sub a{} #()$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=()abdominales()$ G)>=abdominales()$F)?G: F;($E.0) y()$ I,$K)=()$J,$L);$ESilencio.01 ;para()$i=0;$i.abdominales$E;$i++ ){ $D-{}$K +int()$i*$F/$E)$E)=1}sub p{}$D={}$ Z=$zSilencio.01;mapa{} $H=$_;$I=$N=j$H;$K=$O=j$H;mientras()$H){$q=ord substr()$H,0,1," );si()42==$q){$J=j$H;$L=j$H}más{}$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)@_;#$T;mapa{}$y=$_;mapa{} $T.=$D-{}$y} -{}$_}?#:'.-59..59);$T.="n".-23..23);impresión"E[H$T]}$w= eval{} necesidad Win32:Consola::ANSI};$b=$w?1;7; ':";($j,$u,$,$t,$a,$n,$o ,$h,$c,$k,$p,$e,$r,$l,$C)=división/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J]. 'BA*JQK8I*JC}KUz]*QJ[R?-R[e]RI'.'Tn*JQ]wRAI*JDnR8QAUwT8KT '. []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[n] '.'WQ'*JWeOe{n*EERk8;'. 'J*JC}/U*OJd[OI@*BJ*JXn*J]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe '. 'QIAKJR}*JV]wRAI*J?}T]*RJcJI[]3;U]Uq*PM[wV]WCT*DM*SJ. ZP[Z]. 'PZa[]UKVgogK9K*QJ[]n[RI@*EH@IddR[Q]T3o[dk*JE '. '[ZU'. OJ[QIO[PIQIO[GUKUk*JE+J5R5AI*EJ00] '. BBC*. 'DMKKJIR[Q+*EJ0*EK ';sub h{}# = qw(%) @ x)[int rand 4];mapa{}printf "E[$b;%dm],int()rand 6)+101-60* ()$w Silencio0);sistema() "cls")si$w ;($A,$S)= ()$_[1] $ ¿Qué?[0]);$M, @,)= división ' ';para() $z=256 ;$z0; $z -=$S){$S*= $A;p @,} dormir$_ [2];mientras ()$_[3]"()$ z+=$ S) .256){ p@". "32}7D$j" ."AG". "OG" ."GT" ."No"," ."24". ."IJ$a" ."1G$n" ."CO$o" .GG$t ."QC" ."h" ."^G$e" .GIG ."$r", "¿32?" ."H$p}FG$e}QG$r". "ZC" ."$l", "28}(LC) ." .". "... ."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); redo}#### #written 060204 by #liverpole @@@@@@@@@@@@@@ #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Contenido relacionado

Semántica segura

Semántica segura es un modelo de coherencia de hardware informático. Describe un tipo de garantía que proporciona un registro de datos cuando es compartido...

Procedimientos avanzados de control de comunicación de datos

En telecomunicaciones, Procedimientos de control de comunicación de datos avanzados es un protocolo de capa de enlace de datos orientado a bits desarrollado...

Lince (lenguaje de programación)

Lynx es un lenguaje de programación para grandes redes distribuidas, que utiliza llamadas a procedimientos remotos. Fue desarrollado por la Universidad de...
Más resultados...
Tamaño del texto:
Copiar