Sign in to follow this  
Followers 0
justsomeguy

Perl syntax

10 posts in this topic

Ok - what's up with this:

#!/usr/bin/perl

What is it, why is it there? From what I can tell comments in perl start with a hash, so shouldn't that be a comment? If it's a comment, then it shouldn't be required, right? If it's not a comment, then why does it start with a comment character? I've seen that it is supposed to tell the perl interpreter what the path is to the perl installation directory, but - isn't the perl interpreter inside the perl installation directory? Why would it need a path pointing to itself? Shouldn't it already know where it is?I've never seen a script that needs to know the environment in which it's running like that, i.e. with PHP you don't have to include the path to the PHP interpreter inside the source code. The same with Java or C or anything else, so why did Larry Wall think that was a good idea? Doesn't it just have the effect of reducing portability of code? What happens if you're trying to install a perl application with 100 scripts on a machine where the perl installation directory is in an unusual place?

Share this post


Link to post
Share on other sites

Can't blame Larry Wall or Perl for this one. Dennis Ritchie invented the shebang for all Unix script interpreters many years before Wall invented Perl. (We're talking ksh and awk, stuff like that.) I believe initially it was a directive to tell Unix what interpreter to use, and where it was, when a script was typed right on the command line. You wouldn't necessarily be working in the directory the interpreter was housed, and I believe it would be possible to have more than one version of perl installed at a time.It's inside a hash comment because it's a Unix sys directive, not an interpreter command. The hash tells perl to ignore it, which is exactly what it does.Can't argue too much on portability, though it's my experience that for most ISPs the user shebang is exactly the same. If not, in two minutes you can write a script that changes the shebang in as many hundreds of files as you like. An inconvenience, but hardly crippling, and the kind of thing scripters like to do anyway.For some reason, perl enthusiasts (same mindset as Trekkies) have been unwilling to let go of a lot of legacy stuff. And for all the cool functions that PHP has that perl lacks, the best perl scripters could whip out a regex to do the same job in 2-3 seconds. (I am not at that level--of fanaticism or competence. Just a guy who chose perl because it looked like something I already knew.)

Share this post


Link to post
Share on other sites
For some reason, perl enthusiasts (same mindset as Trekkies) have been unwilling to let go of a lot of legacy stuff.
Yeah, I think that goes for a lot of the old-school Linux and Unix users in general. Well, at least with C we just run the compiler, glad Ritchie left stuff like that out of C. Or maybe Kernighan's sanity prevailed.

Share this post


Link to post
Share on other sites

Beats me. Except to say that K&R is one of the most cogently written technical manuals I know. And I teach technical writing.

Share this post


Link to post
Share on other sites

Yeah? I took a lot from my technical writing classes in college. Feel free to critique my writing if you think I can say something better. Incidentally, what are your feelings about the word "utilize"?

Share this post


Link to post
Share on other sites
. . . what are your feelings about the word "utilize"?
Mostly it sucks. "Use" is perfectly good English and doesn't sound like you have a stick up your butt. Really, off the top of my head, I can't think of a reason for ever writing it. Good technical writing textbooks have a lot of pages devoted to getting rid of manager-ese, which is usually a sign of an inferiority complex. I'm sure you know the kind of people I'm talking about. One of my peeves is the word "differential" when the speaker simply means "difference." There's a differential in my car, and differential calculus, but my boss and I have a difference of opinion.

Share this post


Link to post
Share on other sites

Yeah, that's pretty much exactly what my technical writing teacher said. Something about never using "utilize" when you can just use "use".

Share this post


Link to post
Share on other sites
Yeah? I took a lot from my technical writing classes in college. Feel free to critique my writing if you think I can say something better. Incidentally, what are your feelings about the word "utilize"?
Wow. Are we still on that? :)Deirdre's Dad, this was quite a discussion we had a while back, that started with this post:http://w3schools.invisionzone.com/index.ph...ost&p=71947Basically, all I have left to say in hindsight personally is that while "utilize" may not have a place in technical writing (which to my understanding involves explaining complex ideas to technical and nontechnical audiences?), that doesn't mean there isn't room for it in the English language. There are more genres than technical writing, and different mediums. I'd say, yeah, generally the more complex the subject matter of a discussion/instruction is, the more do you want to cut down on difficult words, but say in a prose text, repetitive word usage is not so good.Have you ever used "for example" and "for instance" across paragraphs? Not strictly synonyms, but still used interchangibly. Same thing with "use" and "utilize" outside technical writing.

Share this post


Link to post
Share on other sites

I was just curious to see what someone teaching technical writing thought.. heck, I didn't even link to our earlier discussion where everyone but me agreed that "utilize" and "use" mean two different things.

Share this post


Link to post
Share on other sites

Some debate. I really enjoyed reading the Eric skuffle in the archives (it was Eric?) but I missed this one.First, a clarification. The technical writing class I teach is for business as well as well as engineers. I also teach fiction writing, and I make the same case there, even more strongly.In very broad strokes, English can be parsed into words that have more native English quality and less native English quality. Typically, our everyday words fall into the first class, and typically they come to English directly from what we call Anglo-Saxon, which is roughly equivalent to old high German or something like that. This makes their origins in our language over 1000 years old.We tend next to be comfortable with words that entered the language from Medieval French after the Norman conquest. These words tend to be 800-1000 years old, also well established.In neither case is length or number of syllables really an issue. They simply make up a huge proportion of the 500-600 words we use most often and create the flavor of what a layperson would call "Normal English."Most of our "true" -ize words entered the language after that core vocabulary had been established. They came from a more modern French, typically during the time when French literally was the Lingua Franca. They were borrowed by diplomats and very educated magazine writers, but certainly not by the working class, who were slow to encounter them and slower to adopt them.Of course today, -ize is a semi-English suffix that can be stuck onto any word of Greek/Italian/Eskimo origin and make sense. But the products always have a manufactured quality, which is heard by many as "high-falutin'," fancy, pretentious, whatever you want to call it.The situation is even more drastic with words borrowed during the 17th-18th centuries directly from the greek or latin. They feel funny, less immediate, more abstract.A Martian learning the language from a textbook would not perceive these differences. They are really only apparent to native speakers with working-class roots. So the issue is not so much what does the word mean, is there a shorter word, but rather: is there a word belonging to our "core" vocabulary that means pretty much the same thing in this context. If so, most people will grasp your intent more quickly and accurately if you use that one, so that's the one I recommend.On the other hand, context means a lot, and in some contexts the "fancy" word works better. My textbook singles out "prioritize" as bad, for instance, and says the word "rank" would be better. The book is wrong. A native speaker uses the word rank mostly as a noun, sometimes as an adjective referring to a bad smell. It feels awkward as a verb, and in any case less urgent than "prioritize," which has a "get it right or the space-shuttle might blow up" quality.Besides, it would be a crummy language indeed if we strictly limited ourselves to 500-600 words!But as I said originally, utilize never feels right to me. We use it as a near-perfect synonym for use. Now, I don't know why someone thought we ought to have it, but if there was a good reason at the time, it might have been this: to describe the use of a thing for which it was not intended, or which has no intention, like a natural object--a rock, say. The meaning, then, would be "to give something utility." I use the telephone to call a friend, but I utilize a rock to pound in a nail when I cannot find a hammer. I'm guessing, but that feels right. But I'm unaware of any native speaker who actually makes that distinction. So the word becomes excess baggage, to me at least.Woof. Home now.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0