411 REFERENCE · Wikiquote
Larry Wall
Reference material by Wikiquote contributors. This retains its source identity and is not 411 news reporting.
thumb|Larry Wall in 2007
Larry Arnold Wall (born September 27, 1954) is a programmer, best known as the creator of the Perl programming language.
Quotes
Usenet postings
1990
Although the Perl Slogan is There's More Than One Way to Do It, I hesitate to make 10 ways to do something.
9682@jpl-devvax.JPL.NASA.GOV 1990
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.
10209@jpl-devvax.JPL.NASA.GOV 1990
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.
9847@jpl-devvax.JPL.NASA.GOV 1990
Besides, REAL computers have a rename() system call.
7937@jpl-devvax.JPL.NASA.GOV 1990
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 config.sh.
9384@jpl-devvax.JPL.NASA.GOV 1990
I don't know if it's what you want, but it's what you get.
10502@jpl-devvax.JPL.NASA.GOV 1990
I dunno, I dream in Perl sometimes...
8538@jpl-devvax.JPL.NASA.GOV 1990
Piet van Oostrum: I find this a nice feature but it is not according to the documentation. Or is it a BUG?Larry Wall: Let's call it an accidental feature.
6909@jpl-devvax.JPL.NASA.GOV 1990
(To someone at New York University) If you consistently take an antagonistic approach, however, people are going to start thinking you're from New York.
10187@jpl-devvax.JPL.NASA.GOV 1990
If you want to program in C, program in C. It's a nice language. I use it occasionally...
7577@jpl-devvax.JPL.NASA.GOV 1990
I know it's weird, but it does make it easier to write poetry in perl.
7865@jpl-devvax.JPL.NASA.GOV 1990
I'm sure that that could be indented more readably, but I'm scared of the awk parser.
6849@jpl-devvax.JPL.NASA.GOV 1990
It is, of course, written in Perl. Translation to C is left as an exercise for the reader.
7448@jpl-devvax.JPL.NASA.GOV 1990
It's all magic.
7282@jpl-devvax.JPL.NASA.GOV 1990
It's documented in The Book, somewhere...
10502@jpl-devvax.JPL.NASA.GOV 1990
It won't be covered in the book. The source code has to be useful for something, after all...
10160@jpl-devvax.JPL.NASA.GOV 1990
Dan Smith: 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 of solution).Larry Wall: In the first pass, install perl.
6849@jpl-devvax.JPL.NASA.GOV 1990
Let's say the docs present a simplified view of reality...
6940@jpl-devvax.JPL.NASA.GOV 1990
Let us be charitable, and call it a misleading feature
2609@jato.Jpl.Nasa.Gov 1990
Perl programming is an *empirical* science!
10226@jpl-devvax.JPL.NASA.GOV 1990
Randal said it would be tough to do in sed. He didn't say he didn't understand sed. Randal understands sed quite well. Which is why he uses Perl.
7874@jpl-devvax.JPL.NASA.GOV 1990
Real programmers can write assembly code in any language.
8571@jpl-devvax.JPL.NASA.GOV 1990
The only disadvantage I see is that it would force everyone to get Perl. Horrors.
8854@jpl-devvax.JPL.NASA.GOV 1990
There are probably better ways to do that, but it would make the parser more complex. I do, occasionally, struggle feebly against complexity...
7886@jpl-devvax.JPL.NASA.GOV 1990
There are still some other things to do, so don't think if I didn't fix your favorite bug that your bug report is in the bit bucket. (It may be, but don't think it.
7238@jpl-devvax.JPL.NASA.GOV 1990
Though I'll admit readability suffers slightly...
2969@jato.Jpl.Nasa.Gov 1990
What about WRITING it first and rationalizing it afterwards?
8162@jpl-devvax.JPL.NASA.GOV 1990
You want it in one line? Does it have to fit in 80 columns?
7349@jpl-devvax.JPL.NASA.GOV 1990
1991
All language designers are arrogant. Goes with the territory...
1991Jul13.010945.19157@netlabs.com 1991
Besides, including <std_ice_cubes.h> is a fatal error on machines that don't have it yet. Bad language design, there...
1991Aug22.220929.6857@netlabs.com 1991
Besides, it's good to force C programmers to use the toolbox occasionally.
1991May31.181659.28817@jpl-devvax.jpl.nasa.gov 1991
Hey, I had to let awk be better at *something*...
1991Nov7.200504.25280@netlabs.com 1991
If I allowed 'next $label' then I'd also have to allow 'goto $label', and I don't think you really want that...
1991Mar11.230002.27271@jpl-devvax.jpl.nasa.gov 1991
In general, if you think something isn't in Perl, try it out, because it usually is.
1991Jul31.174523.9447@netlabs.com 1991
I think it's a new feature. Don't tell anyone it was an accident.
On s/foo/bar/eieio 10911@jpl-devvax.JPL.NASA.GOV 1991
It's there as a sop to former Ada programmers.
Regarding 10_000_000 11556@jpl-devvax.JPL.NASA.GOV 1991
I won't mention any names, because I don't want to get sun4's into trouble...
11333@jpl-devvax.JPL.NASA.GOV 1991
Just don't create a file called -rf.
11393@jpl-devvax.JPL.NASA.GOV 1991
last|perl -pe '$_ x=/(..:.)...(.*)/&&"'$1'"ge$1&&"'$1'"lt$2'That's gonna be tough for Randal to beat...
1991Apr29.072206.5621@jpl-devvax.jpl.nasa.gov 1991
No, I'm not going to explain it. If you can't figure it out, you didn't want to know anyway...
1991Aug7.180856.2854@netlabs.com 1991
Perl itself is usually pretty good about telling you what you shouldn't do.
11091@jpl-devvax.JPL.NASA.GOV 1991
Sorry. My testing organization is either too small, or too large, depending on how you look at it.
1991Apr22.175438.8564@jpl-devvax.jpl.nasa.gov 1991
There are many times when you want it to ignore the rest of the string just like atof() does. Oddly enough, Perl calls atof(). How convenient.
1991Jun24.231628.14446@jpl-devvax.jpl.nasa.gov 1991
We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise.
1991Nov13.194420.28091@netlabs.com 1991
1992
... an initial underscore already conveys strong feelings of magicalness to a C programmer.
1992Nov9.195250.23584@netlabs.com 1992
And I don't like doing silly things (except on purpose).
1992Jul3.191825.14435@netlabs.com 1992
: And it goes against the grain of building small tools.Innocent, Your Honor. Perl users build small tools all day long.
1992Aug26.184221.29627@netlabs.com 1992
But you have to allow a little for the desire to evangelize when you think you have good news.
1992Aug26.184221.29627@netlabs.com 1992
Down that path lies madness. On the other hand, the road to hell is paved with melting snowballs.
1992Jul2.222039.26476@netlabs.com 1992
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.
1992Jan17.005405.16806@netlabs.com 1992
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.
1992Mar5.180926.19041@netlabs.com 1992
> (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.
1992Aug26.184221.29627@netlabs.com 1992
Just don't compare it with a real language, or you'll be unhappy...
1992May12.190238.5667@netlabs.com 1992
Lispers are among the best grads of the Sweep-It-Under-Someone-Else's-Carpet School of Simulated Simplicity. [Was that sufficiently incendiary?]
1992Jan10.201804.11926@netlabs.com 1992
There ain't nothin' in this world that's worth being a snot over.
1992Aug19.041614.6963@netlabs.com 1992
...this does not mean that some of us should not want, in a rather dispassionate sort of way, to put a bullet through csh's head.
1992Aug6.221512.5963@netlabs.com 1992
Unix is like a toll road on which you have to stop every 50 feet to pay another nickel. But hey! You only feel 5 cents poorer each time.
1992Aug13.192357.15731@netlabs.com 1992
What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?
1992Aug26.184221.29627@netlabs.com 1992
You have to admit that it's difficult to misplace the Perl sources.
1992Aug26.184221.29627@netlabs.com 1992
Doing linear scans over an associative array is like trying to club someone to death with a loaded Uzi.
1992Sep21.214659.22849@netlabs.com 1992
1994
Well, enough clowning around. Perl is, in intent, a cleaned up and summarized version of that wonderful semi-natural language known as'Unix'.
1994Apr6.184419.3687@netlabs.com 1994
Anyway, there's plenty of room for doubt. It might seem easy enough, but computer language design is just like a stroll in the park.Jurassic Park, that is.
1994Jun15.074039.2654@netlabs.com 1994
Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.
1994Jul21.173737.16853@netlabs.com 1994
I don't like your I-can-use-anything-as-an-adjective attitude.
1994Nov12.013919.21133@netlabs.com 1994
1997
I want to see people using Perl to glue things together creatively, not just technically but also socially.
199702111730.JAA28598@wall.org 1997
The whole history of computers is rampant with cheerleading at best and bigotry at worst.
199702111730.JAA28598@wall.org 1997
If someone stinks, view it as a reason to help them, not a reason to avoid them.
199702111730.JAA28598@wall.org 1997
As usual, I'm overstating the case to knock a few neurons loose, but the truth is usually somewhere in the muddle, uh, middle.
199702111639.IAA28425@wall.org 1997
Odd that we think definitions are definitive.
199702221943.LAA20388@wall.org 1997
: But for some things, Perl just isn't the optimal choice.(yet)
199702221943.LAA20388@wall.org 1997
I don't like this official/unofficial distinction. It sound, er, officious.
199702221943.LAA20388@wall.org 1997
If you write something wrong enough, I'll be glad to make up a new witticism just for you.
199702221943.LAA20388@wall.org 1997
So far we've managed to avoid turning Perl into APL.
199702251904.LAA28261@wall.org 1997
Not that I have anything much against redundancy. But I said that already.
199702271735.JAA04048@wall.org 1997
They can always run stderr through uniq.
199704012331.PAA16535@wall.org 1997
I'd put my money where my mouth is, but my mouth keeps moving.
199704051723.JAA28035@wall.org 1997
Of course, I reserve the right to make wholly stupid changes to Perl if I think they improve the language.
199704251604.JAA27300@wall.org 1997
Call me bored, but don't call me boring.
199705101952.MAA00756@wall.org 1997
I think $[ is more like a coelacanth than a mastadon.
199705101952.MAA00756@wall.org 1997
We question most of the mantras around here periodically, in case you hadn't noticed.
199705101952.MAA00756@wall.org 1997
That could certainly be done, but I don't want to fall into the Forth trap, where every running Forth implementation is really a different language.
199705101952.MAA00756@wall.org 1997
Tcl long ago fell into the Forth trap, and is now trying desperately to extricate itself (with some help from Sun's marketing department).
199705101952.MAA00756@wall.org 1997
The whole intent of Perl 5's module system was to encourage the growth of Perl culture rather than the Perl core.
199705101952.MAA00756@wall.org 1997
Randal can write one-liners again. Everyone is happy, and peace spreads over the whole Earth.
199705101952.MAA00756@wall.org 1997
Life gets boring, someone invents another necessity, and once again we turn the crank on the screwjack of progress hoping that nobody gets screwed.
199705101952.MAA00756@wall.org 1997
No prisoner's dilemma here. Over the long term, symbiosis is more useful than parasitism. More fun, too. Ask any mitochondria.
199705102042.NAA00851@wall.org 1997
P.S. Perl's master plan (or what passes for one) is to take over the world like English did. Er, *as* English did...
199705201832.LAA28393@wall.org 1997
You can prove anything by mentioning another computer language.
199706242038.NAA29853@wall.org 1997
I think you didn't get a reply because you used the terms 'correct' and 'proper', neither of which has much meaning in Perl culture.
199706251602.JAA01786@wall.org 1997
I'm sure a mathematician would claim that 0 and 1 are both very interesting numbers.
199707300650.XAA05515@wall.org 1997
True, it returns ' ' for false, but ' ' is an even more interesting number than 0.
199707300650.XAA05515@wall.org 1997
Any false value is gonna be fairly boring in Perl, mathematicians notwithstanding.
199707300650.XAA05515@wall.org 1997
We didn't put in ^^ because then we'd have to keep telling people what it means, and then we'd have to keep telling them why it doesn't short circuit. :-/
199707300650.XAA05515@wall.org 1997
Anybody want a binary telemetry frame editor written in Perl?
199708012226.PAA22015@wall.org 1997
Perhaps I'm missing the gene for making enemies.
199708040319.UAA16213@wall.org 1997
Perl has a long tradition of working around compilers.
199708252256.PAA00105@wall.org 1997
Personally, I like to defiantly split my infinitives.
199708271551.IAA10211@wall.org 1997
Real theology is always rather shocking to people who already think they know what they think. I'm still shocked myself.
199708261932.MAA05218@wall.org 1997
The computer should be doing the hard work. That's what it's paid to do, after all.
199709012312.QAA08121@wall.org 1997
The following two statements are usually both true: There's not enough documentation. There's too much documentation.
199709020026.RAA08431@wall.org 1997
Of course, this being Perl, we could always take both approaches.
199709021744.KAA12428@wall.org 1997
The random quantum fluctuations of my brain are historical accidents that happen to have decided that the concepts of dynamic scoping and lexical scoping are orthogonal and should remain that way.
199709021854.LAA12794@wall.org 1997
At many levels, Perl is a 'diagonal' language.
199709021854.LAA12794@wall.org 1997
I'm serious about thinking through all the possibilities before we settle on anything. All things have the advantages of their disadvantages, and vice versa.
199709032332.QAA21669@wall.org 1997
Part of language design is perturbing the proposed feature in various directions to see how it might generalize in the future.
199709032332.QAA21669@wall.org 1997
Sometimes we choose the generalization. Sometimes we don't.
199709032332.QAA21669@wall.org 1997
I wouldn't ever write the full sentence myself, but then, I never use goto either.
199709032332.QAA21669@wall.org 1997
It's appositival, if it's there. And it doesn't have to be there. And it's really obvious that it's there when it's there.
199709032332.QAA21669@wall.org 1997
Oh, get ahold of yourself. Nobody's proposing that we parse English.
199709032332.QAA21669@wall.org 1997
As with all the other proposals, it's basically just a list of words. You can deal with that...
199709032332.QAA21669@wall.org 1997
I hope I'm not getting so famous that I can't think out load [sic] anymore.
199709032332.QAA21669@wall.org 1997
It would be possible to optimize some forms of goto, but I haven't bothered.
199709041935.MAA27136@wall.org 1997
A 'goto' in Perl falls into the category of hard things that should be possible, not easy things that should be easy.
199709041935.MAA27136@wall.org 1997
How do Crays and Alphas handle the POSIX problem?
199709050042.RAA29379@wall.org 1997
Well, that's more-or-less what I was saying, though obviously addition is a little more cosmic than the bitwise operators.
199709051808.LAA01780@wall.org 1997
You tell it that it's indicative by appending $!. That's why we made $! such a short variable name, after all.
199709081801.LAA20629@wall.org 1997
The choice of approaches could be made the responsibility of the programmer.
199709081901.MAA20863@wall.org 1997
As someone pointed out, you could have an attribute that says 'optimize the heck out of this routine', and your definition of heck would be a parameter to the optimizer.
199709081854.LAA20830@wall.org 1997
If you're going to define a shortcut, then make it the base [sic] darn shortcut you can.
199709241628.JAA08908@wall.org 1997
It is my job in life to travel all roads, so that some may take the road less travelled, and others the road more travelled, and all have a pleasant day.
199709241628.JAA08908@wall.org 1997
It's getting harder and harder to think out loud. One of these days someone's gonna go off and kill Thomas a'Becket for me...
199709242015.NAA10312@wall.org 1997
I was about to say, 'Avoid fame like the plague,' but you know, they can cure the plague with penicillin these days.
199709242015.NAA10312@wall.org 1997
But the possibility of abuse may be a good reason for leaving capabilities out of other computer languages, it's not a good reason for leaving capabilities out of Perl.
199709251614.JAA15718@wall.org 1997
Oh, wait, that was Randal...nevermind...
199709261754.KAA23761@wall.org 1997
P.S. I suppose I really should be nicer to people today, considering I'll be singing in Billy Graham's choir tonight...
199709261754.KAA23761@wall.org 1997
Magically turning people's old scalar contexts into list contexts is a recipe for several kinds of disaster.
199709291631.JAA08648@wall.org 1997
And we can always supply them with a program that makes identical files into links to a single file.
199709292012.NAA09616@wall.org 1997
I wasn't recommending that we make the links for them, only provide them with the tools to do so if they want to take the gamble (or the gambol).
199709292259.PAA10407@wall.org 1997
This has been planned for some time. I guess we'll just have to find someone with an exceptionally round tuit.
199709302338.QAA17037@wall.org 1997
switch (ref $@) { OverflowError => warn 'Dam needs to be drained'; DomainError => warn 'King needs to be trained'; NuclearWarError => die; }
199709302338.QAA17037@wall.org 1997
I surely do hope that's a syntax error.
199710011752.KAA21624@wall.org 1997
Anyway, my money is still on use strict vars . . .
199710011704.KAA21395@wall.org 1997
If you remove stricture from a large Perl program currently, you're just installing delayed bugs, whereas with this feature, you're installing an instant bug that's easily fixed. Whoopee.
199710050130.SAA04762@wall.org 1997
I don't think it's worth washing hogs over.
199710060253.TAA09723@wall.org 1997
It's certainly easy to calculate the average attendance for Perl conferences.
199710071721.KAA19014@wall.org 1997
Tcl tends to get ported to weird places like routers.
199710071721.KAA19014@wall.org 1997
Historically Tcl has always stored all intermediate results as strings. (With 8.0 they're rethinking that. Of course, Perl rethought that from the start.)
199710071721.KAA19014@wall.org 1997
Just don't make the '9' format pack/unpack numbers...
199710091434.HAA00838@wall.org 1997
I think that's easier to read. Pardon me. Less difficult to read.
199710120226.TAA06867@wall.org 1997
To ordinary folks, conversion is not always automatic. It's something that may or may not require explicit assistance. See Billy Graham.
199710141738.KAA22289@wall.org 1997
Well, you can implement a Perl peek() with unpack('P',..). Once you have that, there's only security through obscurity.
199710161537.IAA07828@wall.org 1997
It may be possible to get this condition from within Perl if a signal handler runs at just the wrong moment. Another point for Chip...
199710161546.IAA07885@wall.org 1997
As pointed out in a followup, Real Perl Programmers prefer things to be visually distinct.
199710161841.LAA13208@wall.org 1997
The Harvard Law states: Under controlled conditions of light, temperature, humidity, and nutrition, the organism will do as it damn well pleases.
199710161841.LAA13208@wall.org 1997
That should probably be written: no !@#$%^&*:@!semicolon
199710161841.LAA13208@wall.org 1997
That gets us out of deciding how to spell Reg[eE]xp?|RE . . . Of course, then we have to decide what ref $re returns...
199710171838.LAA24968@wall.org 1997
'Course, that doesn't work when 'a' contains parentheses.
199710211647.JAA17957@wall.org 1997
I was trying not to mention backtracking. Which, of course, means that yours is 'righter' than mine, in a theoretical sense.
199710211624.JAA17833@wall.org 1997
Not that I'm against sneaking some notions into people's heads upon occasion. (Or blasting them in outright.)
199710211624.JAA17833@wall.org 1997
(To the extent that anyone but a Prolog programmer can understand \X totally. (And to the extent that a Prolog programmer can understand 'cut'.)
199710211624.JAA17833@wall.org 1997
Wow, I'm being shot at from both sides. That means I *must* be right.
199710211959.MAA18990@wall.org 1997
You don't have to wait--you can have it in 5.004_54 or so.
199710221740.KAA24455@wall.org 1997
There's something to be said for returning the whole syntax tree.
199710221833.LAA24741@wall.org 1997
It's not really a rule--it's more like a trend.
199710221721.KAA24321@wall.org 1997
Double *sigh*. _04 is going onto thousands of CDs even as we speak, so to speak.
199710221718.KAA24299@wall.org 1997
The code also assumes that it's difficult to misspell 'a' or 'b'.
199710221731.KAA24396@wall.org 1997
Well, hey, let's just make everything into a closure, and then we'll have our general garbage collector, installed by 'use less memory'.
199710221744.KAA24484@wall.org 1997
People who understand context would be steamed to have someone else dictating how they can call it.
199710221710.KAA24242@wall.org 1997
For the sake of argument I'll ignore all your fighting words.
199710221710.KAA24242@wall.org 1997
Think of prototypes as a funny markup language--the interpretation is left up to the rendering engine.
199710221710.KAA24242@wall.org 1997
The way these things go, there are probably 6 or 8 kludgey ways to do it, and a better way that involves rethinking something that hasn't been rethunk yet.
199710221859.LAA24889@wall.org 1997
Beauty? What's that?
199710221937.MAA25131@wall.org 1997
I'm afraid my gut level reaction is basically, proceed is cute, but cute doesn't cut it in the emergency room.
199710281816.KAA29614@wall.org 1997
I suppose one could claim that an undocumented feature has no semantics. :-(
199710290036.QAA01818@wall.org 1997
Yes, we have consensus that we need 64 bit support.
199710291922.LAA07101@wall.org 1997
: - cut in regexpsI don't think we reached consensus on that. We're still backtracking...
199710291922.LAA07101@wall.org 1997
Boss: You forgot to assign the result of your map!Hacker: Dang, I'm always forgetting my assignations...Boss: And what's that 'goto' doing there?!?Hacker: Er, I guess my finger slipped when I was typing 'getservbyport'...Boss: Ah well, accidents will happen. Maybe we should have picked APL.
199710311732.JAA19169@wall.org 1997
Perhaps they will have to outlaw sending random lists of words. fee fie foe foo
199710311916.LAA19760@wall.org 1997
Hey, if pi == 3, and three == 0, does that make pi == 0?
199711011926.LAA25557@wall.org 1997
(Never thought I'd be telling Malcolm and Ilya the same thing...
199711071819.KAA29909@wall.org 1997
And other operators aren't so special syntactically, but weird in other ways, like 'scalar', and 'goto'.
199711071749.JAA29751@wall.org 1997
Portability should be the default.
199711072201.OAA01123@wall.org 1997
If this were Ada, I suppose we'd just constant fold 1/0 into die 'Illegal division by zero
199711100226.SAA12549@wall.org 1997
Are you perchance running on a 64-bit machine?
199711102149.NAA16878@wall.org 1997
Almost nothing in Perl serves a single purpose.
199712040054.QAA13811@wall.org 1997
There's some entertainment value in watching people juggle nitroglycerin.
199712041747.JAA18908@wall.org 1997
Reserve your abuse for your true friends.
199712041852.KAA19364@wall.org 1997
1998
Er, Tom, I hate to be the one to point this out, but your fix list is starting to resemble a feature list. You must be human or something.
199801081824.KAA29602@wall.org 1998
It's hard to tune heavily tuned code.
199801141725.JAA07555@wall.org 1998
Perl will always provide the null.
199801151818.KAA14538@wall.org 1998
It's easy to solve the halting problem with a shotgun.
199801151836.KAA14656@wall.org 1998
Well, I think Perl should run faster than C.
199801200306.TAA11638@wall.org 1998
To Perl, or not to Perl, that is the kvetching.
199801200310.TAA11670@wall.org 1998
I suppose you could switch grammars once you've seen 'use strict subs'.
199804140117.SAA02006@wall.org 1998
Well, you know, Hubbard had a bunch of people sworn to commit suicide when he died. So of course he never officially died...
199804141540.IAA05247@wall.org 1998
Even the White House has a press agent.
199804150048.RAA08083@wall.org 1998
That's a valid argument. I just don't think it's valid enough.
199804150050.RAA08093@wall.org 1998
Perl should remain fast and intuitive (to the extent that it is :-)
199804151704.KAA12290@wall.org 1998
I would estimate that the number of programs it breaks in the world will be less than 10. As long as one of those 10 isn't CGI.pm, we're probably okay.
199804161805.LAA18882@wall.org 1998
Just put in another goto, and then it'll be readable.
199804161810.LAA18902@wall.org 1998
I'm reminded of the day my daughter came in, looked over my shoulder at some Perl 4 code, and said, 'What is that, swearing?
199806181642.JAA10629@wall.org 1998
Y'know, there are other possibilities if we assume that filenames are UTF-8...yikes...wait, put down that meat cleaver! Aieeee!!!
199806181655.JAA10702@wall.org 1998
print rand rand rand 1, '\n'; # interesting distribution
199806191536.IAA19013@wall.org 1998
: I could understand principles of Perl source in 2-3 days [. . .]Gee, it took me about eleven years.
199806200201.TAA22277@wall.org 1998
There's often more than one correct thing.There's often more than one right thing.There's often more than one obvious thing.
199806201726.KAA26569@wall.org 1998
I don't believe I've ever cuddled my elses.
199806221550.IAA07171@wall.org 1998
I've always maintained a cordial dislike for indent, because it's usuallyright.
199806221558.IAA07251@wall.org 1998
I'd make people say 'use Fork;' if I thought I could get away with it.
199806232054.NAA01735@wall.org 1998
The way I see it, if you declare something portable, you'll always be wrong, and if you declare it non-portable, you'll always be right.
199806232215.PAA02356@wall.org 1998
Perhaps you should compile your Perl with long doubles one of these megaseconds.
199806241734.KAA09652@wall.org 1998
: Why Bible quotes exclusively? What happened to the Eastern religions?<BR>I'm still working on the Unicode mods.
199807021924.MAA05380@wall.org 1998
Maybe we should take a clue from FTP and put in an option like 'print hash marks on every 1024 iterations'.
199807171819.LAA13771@wall.org 1998
And besides, if Perl really takes off in the Windows space, I think the rest of us would just as soon have a double-agent within ActiveState.
199807172334.QAA18255@wall.org 1998
The court finds everyone to be in contempt (including himself :-), and orders everyone sentenced to five years hard labor. (Working on Perl, of course.)
199807211548.IAA26184@wall.org 1998
I note that the Python folks still think they like JPython. I wonder how long that will last?
199808050009.RAA22631@wall.org 1998
I view the JVM as just another architecture that Perl ought to be ported to. (That, and the Underwood typewriter...)
199808050415.VAA24026@wall.org 1998
So please don't think I have a 'down' on the MVS people. I'm just pulling off their arms to beat other people over the head with.
199808050415.VAA24026@wall.org 1998
It's, uh, pseudo code. Yeah, that's the ticket...[...]And 'unicode' is pseudo code for $encoding.
199808071717.KAA12628@wall.org 1998
: What do people think?What, do people think?
199808071736.KAA12738@wall.org 1998
Well, sure, I explicitly mentioned 'vtables' last time I brought this up. But a single pointer is fairly paltry, as tables go.
199808170117.SAA19369@wall.org 1998
I dunno. Perhaps you should be happy that I have a policy of refraining from grumbling about handicapped operating systems.
199808291719.KAA12244@wall.org 1998
Perl did not get where it is by ignoring psychological factors.
199809031634.JAA26895@wall.org 1998
On the plus side, it's a lot easier in general to find /usr/include than cpp.
199809041612.JAA05556@wall.org 1998
Psychotics are consistently inconsistent. The essence of sanity is to be inconsistently inconsistent.
199809041918.MAA06850@wall.org 1998
That which hits the fan tends to get flung in all directions.
199809091801.LAA15194@wall.org 1998
If this were Ada, we'd simply doc it as 'erroneous'.
199809111734.KAA28296@wall.org 1998
So I'm thinking about ??, or !!, or //, or \\, or whatever. But I think I like ?? the best so far. Or the least worst.
199809150037.RAA17580@wall.org 1998
One operator is no big deal. That can be fixed in a jiffy.
199809151814.LAA22396@wall.org 1998
In Clintonese, that would be 'You are free to infer that I was saying that.'
199809222305.QAA17574@wall.org 1998
Would you trust the linguistic intuitions of someone who has been studying Latin or Greek for three days?
199809230518.WAA19312@wall.org 1998
But I know what's important to me, and what isn't. And I think I know what people can get used to, and what they can even learn to like. (It just takes some people longer than others. :-)
199809230518.WAA19312@wall.org 1998
My arthritic pinkies are already starting to ache just thinking about ||||=.
199809251659.JAA06689@wall.org 1998
Orthogonality for orthogonality's sake is not something I'm keen on.
199809260112.SAA17178@wall.org 1998
Must be a different Larry Wall. There are at least 137 of us in the U.S.
199809300035.RAA12495@wall.org 1998
Symmetry is overrated. Overrated is symmetry.
6vhq4r%24a6i@kiev.wall.org 1998
That is a known bug in 5.00550. Either an upgrade or a downgrade will fix it.
6vu1vo%2489c@kiev.wall.org 1998
That being said, I think we should immediately deprecate any string concatenation that combines '19' with '99'.
199811242002.MAA26850@wall.org 1998
The Golden Gate wasn't our fault either, but we still put a bridge across it.
199811242253.OAA28167@wall.org 1998
It should be illegal to yell 'Y2K' in a crowded economy.
199811242326.PAA28495@wall.org 1998
2003
One thing I do understand is that people get scared when I start thinking out loud.
20031212010945.GB29594@wall.org 2003
: No comment, since this is still hovering (see Larry's reply).Flutter, flutter.
20031213005325.GE7605@wall.org 2003
We don't have enough parallel universes to allow all uses of all junction types--in the absence of quantum computing the combinatorics are not in our favor...
20031213210102.GE18685@wall.org 2003
Accidental stacks considered harmful.
20031213202246.GD18685@wall.org 2003
I try not to confuse roles and traits in my own life. Being the Perl god is a role. Being a stubborn cuss is a trait.
20031215021442.GA4012@wall.org 2003
And in the limiting case where the optimizer is completely broken because it's not implemented yet, we get to work around that too. Optionally...
20031217195433.GB31020@wall.org 2003
I think I'm happier with that. $rubyometer += 0.3 or so.
20031219184224.GA19865@wall.org 2003
Source code
Quotations come from the source code to Perl version 4. Some may be present in more recent versions as well.
cons.c
double value; /* or your money back! */short changed; /* so triple your money back! */
/* now make a new head in the exact same spot */
perl.c
#define NULL 0 /* silly thing is, we don't even use this */
#define SIGILL 6 /* blech */
if (rsfp = mypopen('/bin/mail root','w')) { /* heh, heh */
stab.c
/* And you'll never guess what the dog had *//* in its mouth... */
break; /* don't do magic till later */
stab_val(stab)->str_nok = 1; /* what a wonderful hack! */
tmps_base = tmps_max; /* protect our mortal string */
util.c
pos += screamnext[pos] /* does this goof up anywhere? */
str->str_pok |= SP_FBM; /* deep magic */s = (unsigned char*)(str->str_ptr); /* deeper magic */
Configure
The Configure script in the Perl source code is generated by a tool called Metaconfig, which was also used in a number of Larry Wall's other programs.
echo 'Congratulations. You aren't running Eunice.
echo 'Hmmm...you don't have Berkeley networking in libc.a...'echo 'but the Wollongong group seems to have hacked it in.
echo 'ICK, NOTHING WORKED!!! You may have to diddle the includes.';;
echo $package has manual pages available in source form.echo 'However, you don't have nroff, so they're probably useless to you.
echo 'Your stdio isn't very std.'
[End of diatribe. We now return you to your regularly scheduled programming...]
OOPS! You naughty creature! You didn't run Configure with sh! I will attempt to remedy the situation by running sh for you...
That means I'll have to use $ans to suppress newlines now.Life is ridiculous.
There is, however, a strange, musty smell in the air that reminds me of something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
You can't have filenames longer than 14 chars. You can't even think about them!
Your csh still thinks true is false. Write to your vendor today and tell them that next year Configure ought to 'rm /bin/csh' unless they fix their blasted shell.
Other files
/* we have tried to make this normal case as abnormal as possible */
cmd.c.
s = (char*)(long)retval; /* ouch */
doio.c.
signal(i, SIG_DFL); /* crunch, crunch, crunch */
doarg.c.
if (instr(buf,sys_errlist[errno])) /* you don't see this */
eval.c.
/* dbmrefcnt--; */ /* doesn't work, rats */
hash.c.
#else /* !STDSTDIO */ /* The big, slow, and stupid way */
str.c.
/* This bit of chicanery makes a unary function followed by a parenthesis into a function with one argument, highest precedence. */
toke.c
Documentation
Be consistent.
In the perl man page.
Does the same as the system call of that name. If you don't know what it does, don't worry about it.
In the perl man page regarding chroot(2).
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.
In the perl man page.
Help save the world!
In README
If you want your program to be readable, consider supplying the argument.
In the perl man page.
In general, they do what you want, unless you want consistency.
In the perl man page.
Okay, that's definitely enough hype.
In the perl man page.
Perl is designed to give you several ways to do anything, so consider picking the most readable one.
In the perl man page.
Remember though thatTHERE IS NO GENERAL RULE FOR CONVERTING A LIST INTO A SCALAR.
In the perl man page.
The autodecrement is not magical.
In the perl man page.
*** The previous line contains the naughty word '$&'.\nif /(ibm|apple|awk)/; # :-)
In the perl man page.
When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi.
In the perl man page.
Public Talks
"2nd State of the Onion"
Taken from the transcript of the talk.
On Jon Postel's robustness principle applied to human communication:
People understand instinctively that the best way for computer programs to communicate with each other is for each of the them to be strict in what they emit, and liberal in what they accept. The odd thing is that people themselves are not willing to be strict in how they speak, and liberal in how they listen. You'd think that would also be obvious. Instead, we're taught to express ourselves.
"3rd State of the Onion"
Taken from the transcript of the talk.
But I'm not here to talk about postmodernism. I tried to do that last spring, and afterwards I was thoroughly deconstructed by the deconstructionists for attempting to deconstruct deconstructionism. At least, that's the construction I put on their construction of it. I was talking about postmodern culture, and they thought I was talking about postmodern literature. Not at all the same thing!
"Present Continuous - Future Perfect"
Taken from the transcript of the talk.
And C was good at something I like to call manipulexity, that is the manipulation of complex things. While shell was good at something else which I call whipuptitude, the aptitude for whipping things up.
So... Perhaps the Perl 6 slogan should be "All Your Paradigms Are Belong To Us". We'll get to that.
I simultaneously believe that languages are wonderful and awful. You have to hold both of those. Ugly things can be beautiful. And beautiful can get ugly very fast. You know, take Lisp. You know, it's the most beautiful language in the world. At least up until Haskell came along. (laughter) But, you know, every program in Lisp is just ugly. I don't figure how that works.
Now, I'm not the only language designer with irrationalities. You can think of some languages to go with some of these things.
"We've got to start over from scratch" - Well, that's almost any academic language you find.
"English phrases" - Well, that's Cobol. You know, cargo cult English. (laughter)
"Text processing doesn't matter much" - Fortran.
"Simple languages produce simple solutions" - C.
"If I wanted it fast, I'd write it in C" - That's almost a direct quote from the original awk page.
"I thought of a way to do it so it must be right" - That's obviously PHP. (laughter and applause)
"You can build anything with NAND gates" - Any language designed by an electrical engineer. (laughter)
"This is a very high level language, who cares about bits?" - The entire scope of fourth generation languages fell into this... problem.
"Users care about elegance" - A lot of languages from Europe tend to fall into this. You know, Eiffel.
"The specification is good enough" - Ada.
"Abstraction equals usability" - Scheme. Things like that.
"The common kernel should be as small as possible" - Forth.
"Let's make this easy for the computer" - Lisp. (laughter)
"Most programs are designed top-down" - Pascal. (laughter)
"Everything is a vector" - APL.
"Everything is an object" - Smalltalk and its children. (whispered:) Ruby. (laughter)
"Everything is a hypothesis" - Prolog. (laughter)
"Everything is a function" - Haskell. (laughter)
"Programmers should never have been given free will" - Obviously, Python. (laughter).
How do you type it? With your keyboard.
The State of the Onion 10
Taken from The State of the Onion 10
If there's a particular problem that Perl is trying to solve, it's the basic fact that all programming languages suck. Sort of the concept of original sin, applied to programming languages.
There are a lotta computer languages out there doing drugs.
The State of the Onion 11
Taken from The State of the Onion 11 ("Programming is Hard. Let's Go Scripting").
Suppose you went back to Ada Lovelace and asked her the difference between a script and a program. She'd probably look at you funny, then say something like: Well, a script is what you give the actors, but a program is what you give the audience. That Ada was one sharp lady...
I started out as a BASIC programmer. Some people would say that I'm permanently damaged. Some people are undoubtedly right... But I'm not going to apologize for that. All language designers have their occasional idiosyncracies. I'm just better at it than most.
But you could do extreme programming. In fact, I had a college buddy I did pair programming with. We took a compiler writing class together and studied all that fancy stuff from the dragon book. Then of course the professor announced we would be implementing our own language, called PL/0. After thinking about it a while, we announced that we were going to do our project in BASIC. The professor looked at us like we were insane. Nobody else in the class was using BASIC. And you know what? Nobody else in the class finished their compiler either. We not only finished but added I/O extensions, and called it PL 0.5. That's rapid prototyping.
Is LISP a candidate for a scripting language? While you can certainly write things rapidly in it, I cannot in good conscience call LISP a scripting language. By policy, LISP has never really catered to mere mortals... And, of course, mere mortals have never really forgiven LISP for not catering to them.
As a linguist, I don't think of Ada as a big language. Now, English and Japanese, those are big languages. Ada is just a medium-sized language.
Larry Wall Speaks at Google (2008)
Video on YouTube.
The only reason I've managed to run this open source project, is that I have learned to delegate even the delegation to other people. (final words of the video).
IRC
Note: On IRC, Wall uses the nickname "TimToady" (the phonetic equivalent of TIMTOWTDI, which are the initials of the Perl Motto "There is More Than One Way to Do it").
<TimToady> TimToady's Lament: The pain in reign falls mainly in the 'splain.
Freenode's #perl6 on 26 February, 2007. Source.
Other
[Boxed] Multiple bouncing balls in a box are a metaphor for community. Notice how the escaping balls explode. This is what happens to people who move from Perl to Ruby.
"The State of the Onion", perl.com, 2004-08-18
In reference to the boxed screensaver that comes with xscreensaver.
...Then you start building things like the Berlin wall to keep people inside your community. In anthropological terms, that's tribalism. A tribal Perl programmer might say, "If you leave the Perl tribe to go and join the Python tribe, we will hunt you down, cook you, and eat you." Or if you join the Ruby tribe, you will explode. By and large, I am not in favor of tribalism. Except for my tribe, of course.
ibid.
The three chief virtues of a programmer are: Laziness, Impatience and Hubris.
From the glossary of the first Programming Perl book.
The problem with being consistent is that there are lots of ways to be consistent, and they're all inconsistent with each other.
Message-ID <20050516005559.GC26184@wall.org>, to perl6-language mailing-list.
There's really no way to fix this and still keep Perl pathologically eclectic.
Larry Wall, Tom Christiansen, and Jon Orwant, Programming Perl, third edition, section 3.10.
…I also discovered Larry's First Law of Language Redesign: Everyone wants the colon.
"Apocalypse 1: The Ugly, the Bad, and the Good", perl.com, 2001-04-02
Larry's 2nd Law of Language Redesign: Larry gets the colon.
"Apocalypse 5: Regular Expressions", perl.com, 2001-06-04
When's the last time you used duct tape on a duct?
"Perl, the First Postmodern Computer Language", perl.com, 1999-03-09
Jesse Vincent: My dog is Web 2.0. Prove me wrong.Larry: Does your dog have a long tail?Damian Conway: If you enjoyed these practices, find 245 more like this in this book.Larry: Does your dog have a long tail?
During sessions of YAPC::Asia::2006
Easy things should be easy, and hard things should be possible.
Amazon.com Interview: Larry Wall.
As for whether Perl 6 will replace Perl 5, yeah, probably, in about 40 years or so.
"Developers can unwrap Perl 6 on Christmas", Infoworld, 2015-12-21
External links
Category:1954 births
Category:Living people
Category:Programmers from the United States
Category:Engineers from the United States
Category:Designers
Category:People from Los Angeles