All language designers are arrogant. Goes with the territory... :-) --Larry Wall in <1991Jul13.010945.19157@netlabs.com %% 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 <1992Jul3.191825.14435@netlabs.com> %% : And it goes against the grain of building small tools. Innocent, Your Honor. Perl users build small tools all day long. --Larry Wall in <1992Aug26.184221.29627@netlabs.com> %% /* 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 is a fatal error on machines that don't have it yet. Bad language design, there... :-) --Larry Wall in <1991Aug22.220929.6857@netlabs.com> %% Besides, it's good to force C programmers to use the toolbox occasionally. :-) --Larry Wall in <1991May31.181659.28817@jpl-devvax.jpl.nasa.gov> %% 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 <1992Aug26.184221.29627@netlabs.com> %% 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. :-) --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 <1992Jul2.222039.26476@netlabs.com> %% echo "Congratulations. You aren't running Eunice." --Larry Wall in Configure from the perl distribution %% echo "Hmmm...you 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 <1991Nov7.200504.25280@netlabs.com>1 %% 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... :-) --lwall %% 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 <1991Mar11.230002.27271@jpl-devvax.jpl.nasa.gov> %% 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 <1992Jan17.005405.16806@netlabs.com> %% "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 <1992Mar5.180926.19041@netlabs.com> %% 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. --lwall %% 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 <1991Jul31.174523.9447@netlabs.com> %% 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. :-) --lwall %% 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 <1992Aug26.184221.29627@netlabs.com> %% 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 of solution). 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 <1992May12.190238.5667@netlabs.com> %% 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 <1991Apr29.072206.5621@jpl-devvax.jpl.nasa.gov> %% 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 in <1992Jan10.201804.11926@netlabs.com %% No, I'm not going to explain it. If you can't figure it out, you didn't want to know anyway... :-) --Larry Wall in <1991Aug7.180856.2854@netlabs.com> %% /* now make a new head in the exact same spot */ --Larry Wall in cons.c from the perl source code %% OK, enough hype. --Larry Wall in the perl man page %% OOPS! You naughty creature! You didn't run Configure with sh! I will attempt to remedy the situation by running sh for you... --Larry Wall in Configure from the perl distribution %% Perl is designed to give you several ways to do anything, so consider picking the most readable one. --Larry Wall in the perl man page %% Perl itself is usually pretty good about telling you what you shouldn't do. :-) --Larry Wall in <11091@jpl-devvax.JPL.NASA.GOV> %% Perl programming is an *empirical* science! --Larry Wall in <10226@jpl-devvax.JPL.NASA.GOV> %% pos += screamnext[pos] /* does this goof up anywhere? */ --Larry Wall in util.c from the perl source code %% Q. Why is this so clumsy? A. The trick is to use Perl's strengths rather than its weaknesses. --Larry Wall in <8225@jpl-devvax.JPL.NASA.GOV> %% 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. :-) -- Larry Wall in <7874@jpl-devvax.JPL.NASA.GOV> %% Real programmers can write assembly code in any language. :-) --Larry Wall in <8571@jpl-devvax.JPL.NASA.GOV> %% Remember though that THERE IS NO GENERAL RULE FOR CONVERTING A LIST INTO A SCALAR. --Larry Wall in the perl man page %% s = (char*)(long)retval; /* ouch */ --Larry Wall in doio.c from the perl source code %% signal(i, SIG_DFL); /* crunch, crunch, crunch */ --Larry Wall in doarg.c from the perl source code %% Sorry. My testing organization is either too small, or too large, depending on how you look at it. :-) --Larry Wall in <1991Apr22.175438.8564@jpl-devvax.jpl.nasa.gov> %% stab_val(stab)->str_nok = 1; /* what a wonderful hack! */ --Larry Wall in stab.c from the perl source code %% str->str_pok |= SP_FBM; /* deep magic */ s = (unsigned char*)(str->str_ptr); /* deeper magic */ --Larry Wall in util.c from the perl source code %% Tactical? TACTICAL!?!? Hey, buddy, we went from kilotons to megatons several minutes ago. We don't need no stinkin' tactical nukes. (By the way, do you have change for 10 million people?) --lwall %% That means I'll have to use $ans to suppress newlines now. Life is ridiculous. --Larry Wall in Configure from the perl distribution %% The autodecrement is not magical. --Larry Wall in the perl man page %% The only disadvantage I see is that it would force everyone to get Perl. Horrors. :-) --Larry Wall in <8854@jpl-devvax.JPL.NASA.GOV> %% *** The previous line contains the naughty word "$&".\n if /(ibm|apple|awk)/; # :-) --Larry Wall in the perl man page %% There ain't nothin' in this world that's worth being a snot over. --Larry Wall in <1992Aug19.041614.6963@netlabs.com> %% 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. :-) --Larry Wall in <1991Jun24.231628.14446@jpl-devvax.jpl.nasa.gov> %% There are probably better ways to do that, but it would make the parser more complex. I do, occasionally, struggle feebly against complexity... :-) --Larry Wall in <7886@jpl-devvax.JPL.NASA.GOV> %% 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. :-) Larry Wall in <7238@jpl-devvax.JPL.NASA.GOV> %% 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. --Larry Wall in Configure from the perl distribution %% "The road to hell is paved with melting snowballs." --Larry Wall in <1992Jul2.222039.26476@netlabs.com> %% /* This bit of chicanery makes a unary function followed by a parenthesis into a function with one argument, highest precedence. */ --Larry Wall in toke.c from the perl source code %% "...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." Larry Wall in <1992Aug6.221512.5963@netlabs.com> %% > This made me wonder, suddenly: can telnet be written in perl? Of course it can be written in Perl. Now if you'd said nroff, that would be more challenging... --Larry Wall %% Though I'll admit readability suffers slightly... --Larry Wall in <2969@jato.Jpl.Nasa.Gov> %% tmps_base = tmps_max; /* protect our mortal string */ --Larry Wall in stab.c from the perl source code %% 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. --Larry Wall in <1992Aug13.192357.15731@netlabs.com> %% "We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise." --Larry Wall in <1991Nov13.194420.28091@netlabs.com> %% /* we have tried to make this normal case as abnormal as possible */ --Larry Wall in cmd.c from the perl source code %% What about WRITING it first and rationalizing it afterwords? :-) --Larry Wall in <8162@jpl-devvax.JPL.NASA.GOV> %% : 1. What is the possibility of this being added in the future? In the near future, the probability is close to zero. In the distant future, I'll be dead, and posterity can do whatever they like... :-) --lwall %% "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?" --Larry Wall in <1992Aug26.184221.29627@netlabs.com> %% When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi. --Larry Wall in the perl man page %% "You can't have filenames longer than 14 chars. You can't even think about them!" --Larry Wall in Configure from the perl distribution %% You have to admit that it's difficult to misplace the Perl sources. :-) --Larry Wall in <1992Aug26.184221.29627@netlabs.com> %% 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. :-) --Larry Wall in Configure from the perl distribution %% You want it in one line? Does it have to fit in 80 columns? :-) --Larry Wall in <7349@jpl-devvax.JPL.NASA.GOV> %%