Just another Perl hacker, or JAPH, typically refers to a Perl program which prints "Just another Perl hacker," (the comma is canonical but is occasionally omitted). Short JAPH programs are often used as signatures in online forums, or as T-shirt designs. The phrase or acronym is also occasionally used (without code) for a signature.
JAPH programs are classically done using extremely obfuscated methods, in the spirit of the Obfuscated C Contest. More recently, as the phenomenon has become so well known, the phrase is sometimes used in ordinary examples (without obfuscation).Even more recently the P of JAPH can also stand for Perl 6, Parrot or Pugs.
The idea of using tiny Perl programs which print a signature "as a signature" was originated by Randal L. Schwartz, in his postings to the newsgroup comp.lang.perl. [Randal L. Schwartz in Usenet message M1HFPVH2JQ.FSF@HALFDOME.HOLDIT.COM explaining the origin of JAPH. Available through google: http://groups.google.com/group/comp.lang.perl.misc/msg/ecc405feeefc120c] (In fact, many of the JAPHs below are his.)
Examples
JAPH program without obfuscation:
print "Just another Perl hacker,
";
Embedding JAPH in opaque code:
$_='987;s/^(d+)/$1-1/e;$1?eval:print"Just another Perl hacker,"';eval;
Decoding JAPH from a transposed string literal:
$_="krJhruaesrltre c a cnP,ohet";$_.=$1,print$2while s/(..)(.)//;
Appearing as if it does something completely unrelated to printing JAPH:
Forking processes to print out one letter each in the correct order [http://perl.plover.com/obfuscated/] :@P=split//,".URRUUc8R";@d=split//,"
rekcah xinU / lreP rehtona tsuJ";sub p{@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P [$f^ord($p{$_})&6] ;$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^ [P.] /&&close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d [$q] ;sleep rand(2)if/S/;print
Using only Perl keywords (no literals or punctuation):
not exp log srand xor s qq qx xors x x length uc ord and print chrord for qw q join use sub tied qxxor eval xor print qq q q xor inteval lc q m cos and print chr ordfor qw y abs ne open tied hex expref y m xor scalar srand print qqq q xor int eval lc qq y sqrt cosand print chr ord for qw x printfeach return local x y or print qqs s and eval q s undef or oct xortime xor ref print chr int ord lcforeach qw y hex alarm chdir killexec return y s gt sin sort split
Taken from [http://perlmonks.org/?node_id=290607 perlmonks.org]
Using only punctuation (no alphanumeric characters): (Written by [http://search.cpan.org/~roode/ Eric Roode] )
*Hello world program *Obfuscated Perl contest *Perl golf
References
External links
* [http://www-106.ibm.com/developerworks/linux/library/l-japh.html Cultured Perl: The Elegance of JAPH] * [http://www.cpan.org/misc/japh http://www.cpan.org/misc/japh] A collection of JAPHs at CPAN.
Just another Perl hacker — (abgekürzt JAPH) steht für ein in der Programmiersprache Perl geschriebenes kurzes Computerprogramm, das lediglich den Text „Just another Perl hacker“ ausgibt, seine Funktionsweise im Quelltext dabei aber möglichst wirkungsvoll verschleiert. Ein… … Deutsch Wikipedia
Perl — Desarrollador(es) Larry Wall www.perl.org Información general Paradigma multiparadigma, funcional, im … Wikipedia Español
PERL — Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle … Deutsch Wikipedia
Perl (Programmiersprache) — Perl Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle Version … Deutsch Wikipedia
Perl 6 — Apparu en Spécification : 2001 2011, mise en œuvre partielle par Rakudo Star Auteur … Wikipédia en Français
Perl — This article is about the programming language. For other uses, see Perl (disambiguation). Perl Paradig … Wikipedia
Programmiersprache Perl — Perl Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle … Deutsch Wikipedia
Obfuscated Perl Contest — Der Obfuscated Perl Contest ist ein Programmierwettbewerb. Die Teilnehmer reichen in der Programmiersprache Perl verfasste kurze Programme ein, deren Funktionsweise im Quelltext auf möglichst kreative Weise verschleiert (englisch: obfuscated)… … Deutsch Wikipedia
Obfuscated Perl Contest — The Obfuscated Perl Contest was a competition for programmers of Perl which was held annually between 1996 and 2000. Entrants to the competition aimed to write devious, inhuman, disgusting, amusing, amazing, and bizarre Perl code .[1] It was run… … Wikipedia