Código clásico desafío de golf. Escriba el programa de Perl más oscuro para imprimir "Simplemente otro hacker de Perl". Aquí está el artículo de Wikipedia sobre él. Puntos de bonificación si cabe en 3 líneas / 70 caracteres cada una.
popularity-contest
obfuscation
perl
Thomas O
fuente
fuente
Respuestas:
No estoy seguro de si se requiere una nueva línea al final: si es así, la adición de
."\n"
todavía no me lleva al límite de 3 líneas * 70 caracteres / línea.Si no fuera por problemas de codificación, la inicialización podría ser mucho más pequeña y extraerse con desempaquetar, por lo que espero que alguien pueda mejorar esto. Estoy pensando en hacer una versión más eficiente: esta es O (n ^ 2), y es posible la decodificación O (n lg n).
fuente
fuente
versión animada :)
fuente
Menos de 70 caracteres en 3 líneas:
Cuidado: tiene codificación ISO-8859-1 .
Más de 70 caracteres, ¡pero menos de 100!
¡Y un poco ofuscado !
¿Un poco lejos?
Hay una secuencia de comandos perl <1'000 con una ayuda completa y algunas características:
(También está codificado ISO-8859-1 ;)
Hay algunas características:
Dónde:
-v
firma-h
cadena de ayuda-j
pronta Sólo otro hacker de Perl.-c
animar la cadena de japh o una cadena enviada si hay alguna-k
volcar el guión él mismo-p
contaminar otro guiónAsi que:
(La última cadena está animada :)
Tratando de quitar el obfucate
Hay un buen módulo B :: Deparse disponible en CPAN:
Bueno, esto es más legible, pero ...
Ok, hay un
pack('v', 27000)
, lo que significa:Hmm para que podamos intentar simplificar el trabajo del despachador:
Bueno, ahora está claro que todo el script está contenido en la
qq(...)
línea 2 y debe enviarse aeval
. Ahora podríamos:Con la esperanza de que el analizador entendiera mejor, ahora:
¡Bien! Tenemos algo casi legible, ahora. ¿Esto siempre da el mismo resultado?
(Y la última línea está animada :)
fuente
Funciona con estenosis habilitadas. Aunque no funciona en todas las máquinas / perls, debido a
CORE'die
y~~%ENV
.fuente