Défi de golf à code classique. Écrivez le programme Perl le plus obscur pour imprimer "Juste un autre pirate Perl". Voici l'article Wikipedia à ce sujet. Points bonus s'il tient sur 3 lignes / 70 caractères chacun.
popularity-contest
obfuscation
perl
Thomas O
la source
la source
Réponses:
Je ne sais pas si une nouvelle ligne à la fin est requise: si c'est le cas, l'ajout de
."\n"
ne me prend toujours pas jusqu'à la limite de 3 lignes * 70 caractères / ligne.Si ce n'était pas pour des problèmes d'encodage, l'initialisation pourrait être beaucoup plus petite et extraite avec unpack, donc je m'attends à ce que quelqu'un puisse l'améliorer. Je pense à faire une version plus efficace - c'est O (n ^ 2), et le décodage O (n lg n) est possible.
la source
la source
version animée :)
la source
Moins de 70 caractères sur 3 lignes:
Attention: il est codé ISO-8859-1 .
Plus de 70 caractères, mais moins de 100!
Et un peu obscurci !
Un peu loin?!
Il existe un script <1'000 perl avec une aide complète et quelques fonctionnalités:
(Il est également encodé ISO-8859-1 ;)
Il y a quelques fonctionnalités:
Où:
-v
Signature-h
chaîne d'aide-j
invite juste un autre pirate perl.-c
animer la chaîne japh ou une chaîne soumise le cas échéant-k
vider le script lui-même-p
poluter un autre scriptAlors:
(La dernière chaîne est animée :)
Essayer de désobstruer
Il y a un joli module B :: Deparse disponible sur CPAN:
Eh bien, c'est plus lisible, mais ...
Ok, il y a un
pack('v', 27000)
, ce que cela signifie:Hmm. afin que nous puissions essayer de simplifier le travail du parseur:
Eh bien, maintenant il est clair que tout le script est contenu
qq(...)
sur la ligne 2 et doit être soumis àeval
. Nous pourrions maintenant:Dans l'espoir que le parseur pourrait mieux comprendre, maintenant:
Bien! Nous avons maintenant quelque chose de presque lisible. Est-ce que cela donne toujours le même résultat?
(Et la dernière ligne est animée :)
la source
Il fonctionne avec les restrictions activées. Bien que cela ne fonctionne pas sur toutes les machines / perles, à cause de
CORE'die
et~~%ENV
.la source