May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Scripting Humor

Humor Chronicle RMS Linus Torvalds Larry Wall & Perl Top 10 Classic Unix Humor Softpanorama Humor Archive GPL
 C C++ Assembler Perl Shell Java Debugging
Admin Algorithms  Networking Solaris Windows Linux Editors
skeptical humor OFM Humor   SE   vi Viruses Eric Raymond Etc

Stupid Shell Tricks

This came to me from UMass.

Note that the '%' prompt indicates that the command should be issued from the C shell, and the '$' prompt indicates the Bourne shell.

% rm meese-ethics
rm: meese-ethics nonexistent

% ar m God
ar: God does not exist

% "How would you rate Reagan's incompetence?
Unmatched ".

% [Where is Jimmy Hoffa?
Missing ].

% ^How did the sex change^ operation go?
Modifier failed.

% If I had a ( for every $ Congress spent, what would I have?
Too many ('s.

% make love
Make:  Don't know how to make love.  Stop.

% sleep with me
bad character

% got a light?
No match.

% man: why did you get a divorce?
man:: Too many arguments.

% ^What is saccharine?
Bad substitute.

% %blow
%blow: No such job.

% \(-
(-: Command not found.

% sh

$ PATH=pretending! /usr/ucb/which sense
no sense in pretending!

$ drink < bottle; opener
bottle: cannot open
opener: not found

$ mkdir matter; cat > matter
matter: cannot create

[Mar 16, 2006] [Slashdot] If PHP developers could read they would be using Python...

Perl-related Humor

Larry Wall - Wikiquote

Larry Wall Quotes

All language designers are arrogant. Goes with the territory... :-)
--Larry Wall in <

Although the Perl Slogan is There's More Than One Way to Do It, I hesitate to make 10 ways to do something. :-)

--Larry Wall in <9695@jpl-devvax.JPL.NASA.GOV>

And don't tell me there isn't one bit of difference between null and space, because that's exactly how much difference there is. :-)

--Larry Wall in <10209@jpl-devvax.JPL.NASA.GOV>

"And I don't like doing silly things (except on purpose)."

--Larry Wall in <>

And it goes against the grain of building small tools. Innocent, Your Honor. Perl users build small tools all day long.

--Larry Wall in <>

/* And you'll never guess what the dog had */
/* in its mouth... */

--Larry Wall in stab.c from the perl source code

Because . doesn't match \n. [\0-\377] is the most efficient way to match everything currently. Maybe \e should match everything. And \E would of course match nothing. :-)

--Larry Wall in <9847@jpl-devvax.JPL.NASA.GOV>

Be consistent.

--Larry Wall in the perl man page

Besides, including std_ice_cubes.h is a fatal error on machines that don't have it yet. Bad language design, there... :-)

--Larry Wall in <>

Besides, it's good to force C programmers to use the toolbox occasionally. :-)

--Larry Wall in <>

Besides, REAL computers have a rename() system call. :-)

--Larry Wall in <7937@jpl-devvax.JPL.NASA.GOV>

break; /* don't do magic till later */

--Larry Wall in stab.c from the perl source code

But you have to allow a little for the desire to evangelize when you think you have good news.

--Larry Wall in <>

Chip Salzenberg sent me a complete patch to add System V IPC (msg, sem and shm calls), so I added them. If that bothers you, you can always undefine them in :-)

--Larry Wall in <9384@jpl-devvax.JPL.NASA.GOV>

/* dbmrefcnt--; */ /* doesn't work, rats */

--Larry Wall in hash.c from the perl source code

#define NULL 0 /* silly thing is, we don't even use this */

--Larry Wall in perl.c from the perl source code

#define SIGILL 6 /* blech */

--Larry Wall in perl.c from the perl source code

Does the same as the system call of that name. If you don't know what it does, don't worry about it.

--Larry Wall in the perl man page regarding chroot(2)

double value; /* or your money back! */
short changed; /* so triple your money back! */

--Larry Wall in cons.c from the perl source code

Down that path lies madness. On the other hand, the road to hell is paved with melting snowballs.

--Larry Wall in <>

echo "Congratulations. You aren't running Eunice."

--Larry Wall in Configure from the perl distribution

echo " don't have Berkeley networking in libc.a..."
echo "but the Wollongong group seems to have hacked it in."

--Larry Wall in Configure from the perl distribution

echo "ICK, NOTHING WORKED!!! You may have to diddle the includes.";;

--Larry Wall in Configure from the perl distribution

echo $package has manual pages available in source form.
echo "However, you don't have nroff, so they're probably useless to you."

--Larry Wall in Configure from the perl distribution

echo "Your stdio isn't very std."

--Larry Wall in Configure from the perl distribution

#else /* !STDSTDIO */ /* The big, slow, and stupid way */

--Larry Wall in str.c from the perl source code

[End of diatribe. We now return you to your regularly scheduled programming...]

--Larry Wall in Configure from the perl distribution

Even if you aren't in doubt, consider the mental welfare of the person who has to maintain the code after you, and who will probably put parens in the wrong place.

--Larry Wall in the perl man page

"Help save the world!"

--Larry Wall in README

Hey, I had to let awk be better at *something*... :-)

--Larry Wall in <>

I already have too much problem with people thinking the efficiency of a perl construct is related to its length. On the other hand, I'm perfectly capable of changing my mind next week... :-)

--Larry Wall

I don't know if it's what you want, but it's what you get. :-)

--Larry Wall in <10502@jpl-devvax.JPL.NASA.GOV>

I dunno, I dream in Perl sometimes...

--Larry Wall in <8538@jpl-devvax.JPL.NASA.GOV>

If I allowed "next $label" then I'd also have to allow "goto $label", and I don't think you really want that... :-)

--Larry Wall in <>

If I don't document something, it's usually either for a good reason, or a bad reason. In this case it's a good reason. :-)

--Larry Wall in <>

"I find this a nice feature but it is not according to the documentation. Or is it a BUG?"
"Let's call it an accidental feature. :-)"

--Larry Wall in <6909@jpl-devvax.JPL.NASA.GOV>

if (instr(buf,sys_errlist[errno])) /* you don't see this */

--Larry Wall in eval.c from the perl source code

if (rsfp = mypopen("/bin/mail root","w")) { /* heh, heh */

--Larry Wall in perl.c from the perl source code

If you consistently take an antagonistic approach, however, people are going to start thinking you're from New York. :-)

--Larry Wall to Dan Bernstein in <10187@jpl-devvax.JPL.NASA.GOV>

If you want to program in C, program in C. It's a nice language. I use it occasionally... :-)

--Larry Wall in <7577@jpl-devvax.JPL.NASA.GOV>

If you want to see useful Perl examples, we can certainly arrange to have comp.lang.misc flooded with them, but I don't think that would help the advance of civilization. :-)

--Larry Wall in <>

If you want your program to be readable, consider supplying the argument.

--Larry Wall in the perl man page

I know it's weird, but it does make it easier to write poetry in perl. :-)

--Larry Wall in <7865@jpl-devvax.JPL.NASA.GOV>

I'll say it again for the logic impaired.

--Larry Wall

I might be able to shoehorn a reference count in on top of the numeric value by disallowing multiple references on scalars with a numeric value, but it wouldn't be as clean. I do occasionally worry about that.

--Larry Wall

I'm sure that that could be indented more readably, but I'm scared of the awk parser.

--Larry Wall in <6849@jpl-devvax.JPL.NASA.GOV>

In general, if you think something isn't in Perl, try it out, because it usually is. :-)

--Larry Wall in <>

In general, they do what you want, unless you want consistency.

--Larry Wall in the perl man page

Interestingly enough, since subroutine declarations can come anywhere, you wouldn't have to put BEGIN {} at the beginning, nor END {} at the end. Interesting, no? I wonder if Henry would like it. :-)

--Larry Wall

I think it's a new feature. Don't tell anyone it was an accident. :-)

--Larry Wall on s/foo/bar/eieio in <10911@jpl-devvax.JPL.NASA.GOV>

"It is easier to port a shell than a shell script."

--Larry Wall

It is, of course, written in Perl. Translation to C is left as an exercise for the reader. :-)

--Larry Wall in <7448@jpl-devvax.JPL.NASA.GOV>

It's all magic. :-)

--Larry Wall in <7282@jpl-devvax.JPL.NASA.GOV>

It's documented in The Book, somewhere...

--Larry Wall in <10502@jpl-devvax.JPL.NASA.GOV>

> (It's sorta like sed, but not. It's sorta like awk, but not. etc.)
Guilty as charged. Perl is happily ugly, and happily derivative.

--Larry Wall in <>

It's there as a sop to former Ada programmers. :-)

--Larry Wall regarding 10_000_000 in <11556@jpl-devvax.JPL.NASA.GOV>

It won't be covered in the book. The source code has to be useful for something, after all... :-)

--Larry Wall in <10160@jpl-devvax.JPL.NASA.GOV>

: I've heard that there is a shell (bourne or csh) to perl filter, does : anyone know of this or where I can get it?
Yeah, you filter it through Tom Christiansen. :-)

--Larry Wall

: I've tried (in vi) "g/[a-z]\n[a-z]/s//_/"...but that doesn't : cut it. Any ideas? (I take it that it may be a two-pass sort ofsolution).
In the first pass, install perl. :-)

--Larry Wall <6849@jpl-devvax.JPL.NASA.GOV>

I won't mention any names, because I don't want to get sun4's into trouble... :-)

--Larry Wall in <11333@jpl-devvax.JPL.NASA.GOV>

Just don't compare it with a real language, or you'll be unhappy... :-)

--Larry Wall in <>

Just don't create a file called -rf. :-)

--Larry Wall in <11393@jpl-devvax.JPL.NASA.GOV>

last|perl -pe '$_ x=/(..:..)...(.*)/&&"'$1'"ge$1&&"'$1'"lt$2' That's gonna be tough for Randal to beat... :-)

--Larry Wall in <>

Let's say the docs present a simplified view of reality... :-)

--Larry Wall in <6940@jpl-devvax.JPL.NASA.GOV>

Let us be charitable, and call it a misleading feature :-)

--Larry Wall in <2609@jato.Jpl.Nasa.Gov>

Lispers are among the best grads of the Sweep-It-Under-Someone-Else's-Carpet School of Simulated Simplicity. [Was that sufficiently incendiary? :-)]

--Larry Wall


Ruby? (Score:2, Funny)
by Anonymous Coward on Tuesday April 30, @11:23AM (#3435770) "Ruby is a refuge for Perl-morons who finally realize that the hideous hairball a dead-end, but whose ego refuses them to submit to Python."


  • Python vs. Perl according to Yoda (on the "Python humor" page).
  • Tcl vs. Perl vs. Python - it's all in the vowels (on the "Python humor" page).
  • [ DaemoncodeWhy not TCL ] by Richard Stallman, Pretty funny misunderstanding of the ideas of TCL.

    As interest builds in extensible application programs and tools, and some programmers are tempted to use Tcl, we should not forget the lessons learned from the first widely used extensible text editor--Emacs.

    The principal lesson of Emacs is that a language for extensions should not be a mere "extension language". It should be a real programming language, designed for writing and maintaining substantial programs. Because people will want to do that!

    Extensions are often large, complex programs in their own right, and the people who write them deserve the same facilities that other programmers rely on.

    The first Emacs used a string-processing language, TECO, which was inadequate. We made it serve, but it kept getting in our way. It made maintenance harder, and it made extensions harder to write. Later Emacs implementations have used more powerful languages because implementors learned from the problems of the first one.

    Another lesson from Emacs is that the way to make sure an extension facility is really flexible is to use it to write a large portion of the ordinary released system. If you try to do that with Tcl, you will encounter its limitations.

    Tcl was not designed to be a serious programming language. It was designed to be a "scripting language", on the assumption that a "scripting language" need not try to be a real programming language. So Tcl doesn't have the capabilities of one. It lacks arrays; it lacks structures from which you can make linked lists. It fakes having numbers, which works, but has to be slow. Tcl is ok for writing small programs, but when you push it beyond that, it becomes insufficient.

    Tcl has a peculiar syntax that appeals to hackers because of its simplicity. But Tcl syntax seems strange to most users. If Tcl does become the "standard scripting language", users will curse it for years--the way people curse Fortran, MSDOS, Unix shell syntax, and other de facto standards they feel stuck with.

    For these reasons, the GNU project is not going to use Tcl in GNU software. Instead we want to provide two languages, similar in semantics but with different syntaxes. One will be Lisp-like, and one will have a more traditional algebraic syntax. Both will provide useful data types such as structures and arrays. The former will provide a simple syntax that hackers like; the latter will offer non-hackers a syntax that they are more comfortable with.

    Some people plan to use Tcl because they want to use Tk. Thankfully, it is possible to use Tk without Tcl. A Scheme interpreter called STk is already available. Please, if you want to use Tk, use it with STk, not with Tcl. One place to get STk is from


    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 in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

    ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  


    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


    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 quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


    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


    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 DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting 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-MonthHow 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

    Copyright © 1996-2016 by Dr. Nikolai Bezroukov. was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

    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.

    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 make a contribution, supporting development of this site and speed up access. In case is down you can use the at


    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 author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

    Last modified: February, 11, 2017