Just another Perl hacker: Difference between revisions

Content deleted Content added
mNo edit summary
m Reverted 1 edit by 2804:658C:210F:7200:F1D1:56C4:4316:9BE2 (talk) to last revision by Explicit
Tags: Twinkle New redirect Undo Mobile edit Mobile web edit Advanced mobile edit
 
(140 intermediate revisions by more than 100 users not shown)
Line 1:
#REDIRECT [[Perl#Community]]
'''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 code|obfuscated]] methods, typically ones based on obscure behaviours of sometimes rarely-used functions, in the spirit of the [[The International Obfuscated C Code Contest|Obfuscated C Contest]].
 
{{Rcat shell|
The obfuscation can result from the code being total gibberish, e.g.:
{{R to related topic}}
 
}}
$_="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 virtual machine|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 ==
* [[Obfuscated Perl contest]]
 
==References==
{{FOLDOC}}
 
== External links ==
* [http://www-106.ibm.com/developerworks/linux/library/l-japh.html Cultured Perl: The Elegance of JAPH]
 
[[Category:Perl]]
 
[[pl:Just another Perl hacker]]
[[de:Just another Perl hacker]]