Just another Perl hacker
|
Just another Perl hacker refers to a Perl program which prints "Just another Perl hacker," (the comma being canonical but occasionally omitted) using extremely obfuscated methods, typically ones based on obscure behaviours of sometimes rarely-used functions, in the spirit of the Obfuscated C Contest.
The obfuscation can result from the code being total gibberish, e.g.:
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
or from having "Just another Perl hacker," embedded in opaque code:
$_='987;s/^(d+)/$1-1/e;$1?eval:print"Just another Perl hacker,"';eval;
or from looking like it does something simple and completely unrelated to printing "Just another Perl hacker":
$_ = "wftedskaebjgdpjgidbsmnjgc"; tr/a-z/oh, turtleneck Phrase Jar!/; print;
or maybe, one that uses only Perl keywords, with nothing else:
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
This phrase was popularized by Randal L. Schwartz, who created most of the first such programs in the signatures of his postings to the Usenet newsgroup comp.lang.perl (the predecessor to the modern comp.lang.perl.misc). (In fact, the first and third of the JAPHs above are his.)
A variant of this, practiced by programmers working on the Parrot project, involves Parrot assembly programs printing the phrase "Just another Parrot hacker":
# OO obfuscated bounds 1 trace 0 newclass P0, "Just another Parrot Hacker\n" shift S0, P5 does I0, P0, S0 add I0, 4 bsr I0 pack S0, 381, I0, I0 invoke ret
Often Parrot JAPHs are only lightly obfuscated; they're usually intended to demonstrate or test a feature in a non-trivial use.
See also
References
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
External links
- Cultured Perl: The Elegance of JAPH (http://www-106.ibm.com/developerworks/linux/library/l-japh.html)pl:Just another Perl hacker