|
Home | Switchboard | Unix Administration | Red Hat | TCP/IP Networks | Neoliberalism | Toxic Managers |
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and bastardization of classic Unix |
Nikolai Bezroukov. Portraits of Open Source Pioneers
For readers with high sensitivity to grammar errors access to this page is not recommended :-)
It's not that perl programmers are idiots,
it's that the language rewards idiotic behavior in a way
that no other language or tool has ever done.
Erik Naggum
"Larry Wall invented Perl. If that doesn't show the mind-twisting effect
that religion can have on some people, I don't know what does."
— UserGogol upon learning that Larry Wall is an Evangelic Christian.
http://www.dias.com.br
#!/usr/bin/perl $==$'; $;||$.| $|;$_ ='*$ ( ^@(%_+&~~;# ~~/.~~ ;_);;.);;#) ;~~~~;_,.~~,.* +,./|~ ~;_);@-, .;.); ~ ~,./@@-__);@-);~~,.*+,. /|);;;~~@-~~~~;.~~,. /.);;.,./@~~@-;.;#~~@-;; ;;,.*+,./.);;#;./@,./ |~~~~;#-(@-__@-__&$#%^';$__ ='`'&'&';$___="````" |"$[`$["|'`%",';$~=("$___$__-$[``$__"| "$___"| ("$___$__-$[.%")).("'`"|"'$["|"'#"). '/.*?&([^&]*)&.*/$'.++$=.("/``"|"/$[`"|"/#'").(";`/[\\`\\`$__]//`;" |";$[/[\\$[\\`$__]//`;"|";#/[\\\$\\.$__]//'").'@:=("@-","/.", "~~",";#",";;",";.",",.",");","()","*+","__","-(","/@",".%","/|", ";_");@:{@:}=$%..$#:;'.('`'|"$["|'#')."/(..)(..)/".("```"|"``$["| '#("').'(($:{$'.$=.'}<<'.(++$=+$=).')|($:{$'.$=.'}))/'.("```;"| "``$[;"|"%'#;").("````'$__"|"%$[``"|"%&!,").${$[};`$~$__>&$=`;$_= '*$(^@(%_+&@-__~~;#~~@-;.;;,.(),./.,./|,.-();;#~~@-);;;,.;_~~@-,./., ./@,./@~~@-);;;,.(),.;.~~@-,.,.,.;_,./@,.-();;#~~@-,.;_,./|~~@-,. ,.);););@-@-__~~;#~~@-,.,.,.;_);~~~~@-);;;,.(),.*+);;# ~~@-, ./|,.*+,.,.);;;);*+~~@-,.*+,.;;,.;.,./.~~@-,.,.,.;_) ;~~~ ~@-,.;;,.;.,./@,./.);*+,.;.,.;;@-__~~;#~~@-,.;;,.* +);; #);@-,./@,./.);*+~~@-~~.%~~.%~~@-;;__,. /.);;#@- __@- __ ~~;;);/@;#.%;#/.;#-(@-__~~;;;.;_ ;#.%~~~~ ;;() ,.;.,./@,. /@,.;_~~@- ););,.;_ );~~,./ @,. ;;;./@,./| ~~~~;#-(@- __,.,.,. ;_);~~~ ~@ -~~());; #);@-,./@, .*+);;; ~~@-~~ );~~);~~ *+~~@-);-( ~~@-@-_ _~~@- ~~@-);; #,./@,.;., .;.);@ -~~@-; #/.;#-( ~~@-@-__ ~~@-~~ @-);@ -);~~, .*+,./ |);;;~ ~@-~~ ;;;.; _~~@-@ -__);. %;#-( @-__@ -__~~;# ~~@-;; ;#,. ;_,.. %);@-,./@, .*+, ..%, .;.,./|) ;;;) ;;#~ ~@-,.*+,. ,.~~ @-); *+,.;_);;.~ ~);); ~~,.; .~~@-);~~,.;., ./.,.; ;,.*+ ,./|,.); ~~@- );;;,.( ),.*+); ;#~~/|@- __~~;#~~ $';$;;
|
"Perl 1.0: All the power of QBasic, the readability of assembly, and the flexibility of DOS batch scripting..."
"Though I'll admit readability suffers slightly..." — Larry Wall (of Perl fame).
|
"After Perl everything else is just assembly language."
"I would rather use Java than Perl. And I'd rather be eaten by a crocodile than use Java." — Trouser."Some people, when confronted with a problem, think 'I know, I'll use regular expressions'. Now they have two problems." — Jamie Zawinski.
Some of Larry Wall citations:
August 9, 2004
It was only a matter of time before somebody would develop such a hideously complicated Perl script that it would become self-aware. This script, originally created as a way to generate mundane legal documents, achieved sentience last week and easily passed the Turing Test.
"This wasn't what I had in mind," explained programmer Eric Mulaw. "But with a 100KB Perl script, anything is possible. At least I'm going to make a fortune out of this..."
Indeed, Mulaw quickly discovered that his artificial life-form, code-named Not_HAL, has more than enough intelligence to simulate a trial lawyer. Without an organic body, Not_HAL won't be able to appear in court, but the Perl script can generate a live courtroom script that can be fed to a minimum-wage actor reading from a TelePrompTer in front of a judge.
"If we can have long-distance surgeries, then why not long-distance litiguous bastardry? It's not like lawyers are so [expletive] important and God-like that they have to appear in the flesh, despite what they might think," Mulaw said. "My virtual lawyer, running on a small Beowulf cluster in my basement, can be just as effective at fooling the judge as the next human."
"There's plenty of out-of-work actors that I can use as warm bodies in court, who will be told what to say and what to do by following Not_HAL's directions on a heads-up display. Meanwhile, I can make an infinite number of copies of Not_HAL -- remember, I hold the copyright -- and take a large cut of the proceeds from every lawsuit that my pet lawyer wins. It's the perfect racket."
It's not immediately clear whether any court will actually allow this scheme, since neither Not_HAL nor his human puppets have been admitted to the bar. Mulaw believes this is only a minor obstacle.
"All I need to do is partner with a high-profile lawyer who will take on any case no matter what the consequences. If a law firm can accept SCO as a client, then they can accept me, despite the fact that my creation represents the coming extinction of all flesh-and-blood lawyers."
"Then, we can argue in court that the bar association's all-lawyers-must-have-a-pulse regulation is in fact a violation of federal anti-discrimination laws. At that point, Not_HAL is in! And I'll be on my way to my first trillion..."
Jon Splatz, Humorix's Pundit and Social Commentator, has mixed feelings about the AI lawyer. "I, for one, salute our new Perl script overlords. It's about time somebody found a way to replace millionaire lawyers with minimum-wage puppets."
"But," he warned, "This does nothing to prevent the Lawyerclysm, the cataclysmic future when every person spends 95% of their time litigating in court. Eliminating lawyers will not eliminate lawyering, and will likely make things worse because people will be able to file hundreds of lawsuits for the same cost as one suit now."
"This could get ugly," he concluded. "Does anybody know how to build an EMP gun before it's too late?"
EXTERIOR: DAGOBAH--DAY With Yoda strapped to his back, Luke climbs up one of the many thick vines that grow in the swamp until he reaches the Dagobah statistics lab. Panting heavily, he continues his exercises--grepping, installing new packages, logging in as root, and writing replacements for two-year-old shell scripts in Python.YODA: Code! Yes. A programmer's strength flows from code maintainability. But beware of Perl. Terse syntax... more than one way to do it... default variables. The dark side of code maintainability are they. Easily they flow, quick to join you when code you write. If once you start down the dark path, forever will it dominate your destiny, consume you it will.
LUKE: Is Perl better than Python?
YODA: No... no... no. Quicker, easier, more seductive.
LUKE: But how will I know why Python is better than Perl?
YODA: You will know. When your code you try to read six months from now.
Q: Since you've in the business for a respectable number of years, what are your five biggest pet peeves about programming?
LR: That's a toughie. How about four, in no particular order:
- Extracting from the potential user a complete and useful specification of a problem.
- Coping with buggy or inadequately documented tools.
- Keeping things functioning as operating environments evolve. (No one wants anything to change except the things that that person wants changed.
:-)
- Evaporating expectations of quality.
(1980's paradigm: If it's worth implementing once, it's worth implementing twice.
1990's paradigm: Ship the prototype!
2000's paradigm: Ship the idea!)
San Francisco, CA. Recent results from standardized Perl Fluency Test showed that 99.99% of US high school seniors can't read Perl. This disturbing statistic shows that American students are painfully unprepared for life after graduation.
"This shows that there is a real need for a Perl Monk in every classroom," said Perl Monk Kelly Adrity. "We've got computers in every classroom, now we need our kids to be able to use them, and what better way to learn about computers than to learn how to read and write in Perl. I'm glad the budget proposed by President Bush sets aside millions for Perl Monks. America will lead the way in Perl literacy."
The four hour test had 2 sections, a simple translation section and a project section. The first part asked students to translate easy Perl phrases into their standard English equivalent, and the second section required students to produce a simple MP3 player in Perl. "I didn't know what the hell any of it meant," said one Senior, "it had lots of slashes and periods and brackets. It was so confusing. I'm feeling rather nauseous."
Perl experts were astounded by the results. "I was amazed that none of the students were able to read this simple sentence:
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)
[20]&48){$h=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}
@ARGV;s/...$/1$&/;$d=unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];
$d=$d>>8^($f=($t=255)&($d>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&
($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=(map{$_%16or$t^=$c^=
($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^
=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;evalI mean, come on, that's so easy," said Paul Chen, Chairman of the Learn Perl or Die Association, which administered the test nationwide. "Teachers need to start with simple phrases like $RF=~tr/A-Z/a-z/; and work up from there. We really need to start teaching this in first grade if kids are ever going to understand this by high school."
Not everyone shared Mr. Chen's view about the necessity of adding Perl to early elementary curricula. Programmers Against Perl (PAP) spokesperson, Keith Willingham said, "There's no better way to scare students away from computers than exposing them to Perl. Even experienced programmers are frightened and confused by it. The Perl lobby is just getting too powerful, and they need to be stopped."
Version 1.01, October 30, 1992
Written by Jeff Okamoto
With Help from Tom Christiansen
This is similar to other Purity Tests, of which perhaps the most famous is the Unisex, Omnisexual Purity Test that can be found in soc.singles. Additions are welcome. Please send them to [email protected]
All questions begin with "Have you ever..." Answer each question with a "yes" or "no". Keep track of how many "yes" answers you give. When finished, subtract that number from the total number of questions, then divide by the number of questions to get a percentage. This percentage is your perl purity. There are 125 questions in this version.
Usage
... rewritten a Unix command in perl?
... rewritten a DOS command in perl?
... emulated a kernel feature inside a program in perl?
... written a compressor/decompressor using pack?
... written scripts that generate other scripts?
... used undocumented features?
Variables
... used reserved keywords as variable names?
... used $x, @x, and %x in a script?
... used $x, @x, %x, and *x in a script?
... not gotten confused when you used $x, @x, %x, and *x all in that script?
... written a script with no alphabetic characters in it?
... no alphanumeric characters in it?
... used variables with control-characters other than ones already defined?
... created variables at runtime?
Lists
... used lists of lists?
Associative Arrays
... used associative array operators on the main symbol table?
Functions
... created functions at runtime?
... written a function that returns different types? (e.g., scalar, list, etc.)
... called a subroutine with the & operator and no arguments so that the
child function inherited what remains of the caller’s argument stack, @_?
... changed function definitions on the fly?
... used wantarray?
... returned a "0 but true" scalar?
Loop Controls
... used do BLOCK inside an EXPR?
... used loop controls (e.g., last, next, etc.) from inside a signal handler?
... created a loop label at runtime?
Operators
... used the scalar ".." operator?
... used it with things other than line numbers, array indices, or regexps?
... used syscall?
Searching and Replacing
... used the /e switch?
... used the /ee switch?
... used a /eee or higher number of e’s in a switch?
Handles
... used arrays of file handles?
... used indirect file handles?
... used doubly indirect file handles?
... used a directory handle as a file handle?
... and gotten away with it?
... used a file handle as a directory handle?
... and gotten away with it?
Regexps
... used all nine sets of parentheses in a regexp?
... used more than nine sets of parentheses in a regexp?
... used nested parentheses in a regexp?
... wished for an equivalent to LISP’s meta-close character "]", which closes all currently open parentheses?
Grep
... used grep on non-arrays?
... nested grep within another grep (for a total of two greps)?
... nested up to five greps within one statement?
... nested more thann five greps within one statement?
Evals
... written self-modifying evals?
... used eval to test for features your brain-damaged version of Unix doesn’t have?
... used eval/die to emulate setjmp/longjmp?
... nested an eval inside another eval (for a total of two nested evals)?
... used up to five nested evals?
... used more than five nested evals?
References
... used references?
... used lists of references?
... used associative arrays of references?
... lost your referents and didn’t care?
I/O
... used stream sockets?
... used datagram sockets?
... used RPC?
Debugging
... used the -D flag?
... used the -D1024 flag?
... figured out what all that debugging info meant?
... used the perl debugger?
... modified the perl debugger?
Packages
... written your own package?
... used packages to emulate structures?
... referenced a package’s symbol table via %_packagename?
User Subroutines
... gotten frustrated with the documentation of how to link in user subroutines?
... written a subroutine to be linked in with uperl.o so that your routine can be called from a perl script?
... replaced your version of perl with a version that has your subroutine(s)?
Scoping
... abused dynamic scoping by fudging @ARGV?
... abused dynamic scoping and changed the names of functions?
h2ph
... debugged the result of h2ph?
... hacked on h2ph?
c2ph
... debugged the result of c2ph?
... hacked on c2ph?
... ported gcc so you can use c2ph?
Heavy Wizardry
... used autoloading functions?
The Source of Taintedness
... used taintperl?
... tried to subvert the TAINT checks?
... read the source to see what happens if you successfully subvert the TAINT checks?
... changed the source to change what happens if you successfully subvert the TAINT checks?
... tried to read the source?
... found the comment "/* Heavy wizardry */" other than by deliberately searching for it now that you know it exists?
The Father, the Son, and the Holy Ghost
... sent mail to Larry asking for help?
... sent mail to Larry reporting a bug in perl?
... sent mail to Larry requesting a feature?
... gotten a reply from Larry (as opposed to his autoreplier)?
... gotten more than ten autoreplies from Larry?
... sent mail to Randal asking for help?
... sent mail to Randal reporting a bug in perl?
... sent mail to Randal with an idea for a JAPH script?
... sent mail to Tom asking for help?
... sent mail to Tom reporting a bug in perl?
... sent mail to Tom pointing out an error in his slides?
... had a requested feature be included in a subsequent set of patches?
... had up to five requested features included?
... had more than five requested features included?
Trivia
... written a "Just another Perl hacker" script?
... written five or less JAPH scripts?
... written more than five JAPH scripts?
... written any perl poems?
... run these perl poems?
Other Fun Stuff
... used unquoted strings?
... used them unintentionally?
... seeked on __DATA__ to reread your script?
... tried to use a bi-directional pipe?
... realized why this is a waste of time?
... used co-routines in a perl script?
... written a script that used command-line switches?
... used up to five command-line switches?
... more than five command-line switches?
... written a script with its own man page embedded in it?
... counted how many perl functions are overloaded?
The Torah and Talmud of Perl
... referred to the Perl book?
... bought the Perl book?
... bought multiple copies because you wore out the previous copies?
... owned more than one edition of the Perl book?
... owned more than one copy of every edition of the Perl book?
... wondered why Larry and Randall chose a camel for the cover?
... found out why Larry and Randall chose a camel?
... read comp.lang.perl?
... posted to comp.lang.perl?
... applied a kill file to comp.lang.perl?
Society
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
Quotes
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Bulletin:
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
History:
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
Classic books:
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D
Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|
You can use PayPal to to buy a cup of coffee for authors of this site |
Disclaimer:
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.
Last modified: March, 12, 2019