Ein Perl-Programm, das "Just another Perl hacker" ausgibt, wobei der Programmcode meistens so verunstaltet wurde, dass man diese Funktion dem Quellcode nicht sofort ansieht. Dazu werden oft, ganz im Sinne des International Obfuscated C Code Contests, ansonsten selten verwendete Funktionen, Variablen oder Verhaltensweisen (wie das Aufrufen einer Funktion ohne Parameter oder das Verwenden von Sonderzeichen in Variabelnamen) genutzt.
Die Verschleierung der Funktion kann beispielsweise durch scheinbaren Datenmüll geschehen:
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
aber auch durch Einbinden von "Just another Perl hacker" in sehr undurchsichtigen Code:
$_='987;s/^(d+)/$1-1/e;$1?eval:print"Just another Perl hacker"';eval;
oder auch einfach nur dadurch, dass das Programm aussieht, als würde es etwas ganz anderes und simples tun, unabhängig von der Ausgabe des Satzes "Just another Perl hacker".
$_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
oder aber auch dadurch, dass ausschließlich Perl-Schlüsselwörter verwendet werden:
not exp log srand xor s qq qx xor s x x length uc ord and print chr ord for qw q join use sub tied qx xor eval xor print qq q q xor int eval lc q m cos and print chr ord for qw y abs ne open tied hex exp ref y m xor scalar srand print qq q q xor int eval lc qq y sqrt cos and print chr ord for qw x printf each return local x y or print qq s s and eval q s undef or oct xor time xor ref print chr int ord lc foreach qw y hex alarm chdir kill exec return y s gt sin sort split
Die "Just another Perl hacker"-Programme wurden anfangs vor allem dadurch bekannt, dass Randal L. Schwartz bei Postings in die Newsgroup comp.lang.perl (dem Vorgänger der heutigen Newsgroup comp.lang.perl.misc) immer welche in seiner Signature hatte.
Weblinks
Der englischsprachige Artikel, auf dem dieser Artikel basiert, enthält beziehungsweise enthielt Material aus dem FOLDOC-Eintrag zu japh.