Is it a Perl program or a Perl script?

Larry doesn't really care. He says (half in jest) that "a script is
what you give the actors. A program is what you give the audience."

Originally, a script was a canned sequence of normally interactive
commands--that is, a chat script. Something like a UUCP or PPP chat
script or an expect script fits the bill nicely, as do configuration
scripts run by a program at its start up, such .cshrc or .ircrc, for
example. Chat scripts were just drivers for existing programs, not
stand-alone programs in their own right.

A computer scientist will correctly explain that all programs are
interpreted and that the only question is at what level. But if you
ask this question of someone who isn't a computer scientist, they
might tell you that a *program* has been compiled to physical machine
code once and can then be run multiple times, whereas a *script* must
be translated by a program each time it's used.

Perl programs are (usually) neither strictly compiled nor strictly
interpreted. They can be compiled to a byte-code form (something of a
Perl virtual machine) or to completely different languages, like C or
assembly language. You can't tell just by looking at it whether the
source is destined for a pure interpreter, a parse-tree interpreter, a
byte-code interpreter, or a native-code compiler, so it's hard to give
a definitive answer here.

Now that "script" and "scripting" are terms that have been seized by
unscrupulous or unknowing marketeers for their own nefarious purposes,
they have begun to take on strange and often pejorative meanings, like
"non serious" or "not real programming". Consequently, some Perl
programmers prefer to avoid them altogether.

Share This Page

Welcome to Velocity Reviews!

Welcome to the Velocity Reviews, the place to come for the latest tech news and reviews.

Please join our friendly community by clicking the button below - it only takes a few seconds and is totally free. You'll be able to chat with other enthusiasts and get tech help from other members.
Sign up now!