Klassische Code Golf Challenge. Schreiben Sie das dunkelste Perl-Programm, um "Just another Perl hacker" zu drucken. Hier ist der Wikipedia-Artikel dazu. Bonuspunkte, wenn es in 3 Zeilen à 70 Zeichen passt.
popularity-contest
obfuscation
perl
Thomas O.
quelle
quelle
Antworten:
Ich bin mir nicht sicher, ob eine neue Zeile am Ende erforderlich ist. Wenn ja, führt die Hinzufügung von
."\n"
immer noch nicht zu einer Beschränkung von 3 Zeilen * 70 Zeichen / Zeile.Wenn es keine Kodierungsprobleme gäbe, könnte die Initialisierung viel kleiner sein und mit Unpack extrahiert werden. Ich gehe also davon aus, dass jemand dies verbessern kann. Ich denke über eine effizientere Version nach - dies ist O (n ^ 2) und O (n lg n) -Decodierung ist möglich.
quelle
quelle
animierte version :)
quelle
Weniger als 70 Zeichen in 3 Zeilen:
Pflege: Es ist ISO-8859-1 kodiert.
Über 70 Zeichen, aber weniger als 100!
Und ein bisschen verschleiert !
Ein bisschen weg ?!
Es gibt ein <1'000 Perl-Skript mit einer vollständigen Hilfe und einigen Funktionen:
(Es ist auch ISO-8859-1 codiert;)
Es gibt einige Funktionen:
Woher:
-v
Unterschrift-h
Hilfe Zeichenfolge-j
Eingabeaufforderung Nur ein weiterer Perl-Hacker.-c
Animieren Sie die Japh- Zeichenfolge oder eine übermittelte Zeichenfolge, falls vorhanden-k
Dump das Skript selbst-p
Beschreibe ein anderes SkriptSo:
(Die letzte Saite ist animiert :)
Versucht zu enttarnen
Auf CPAN ist ein nettes B :: Deparse- Modul verfügbar:
Nun, das ist besser lesbar, aber ...
Ok, es gibt eine
pack('v', 27000)
, was es bedeutet:Hmm. so könnten wir versuchen, die arbeit von deparser zu vereinfachen:
Nun ist klar, dass das gesamte Skript in
qq(...)
Zeile 2 enthalten ist und eingereicht werden musseval
. Wir könnten jetzt:In der Hoffnung, Deparser könnte jetzt besser verstehen:
Gut! Wir haben jetzt etwas fast Lesbares. Gibt dies immer das gleiche Ergebnis?
(Und die letzte Zeile ist animiert :)
quelle
Es funktioniert mit aktivierten Strikturen. Obwohl es aufgrund von
CORE'die
und nicht auf allen Rechnern / Perls funktioniert~~%ENV
.quelle