FAQ 1.13 Is it a Perl program or a Perl script?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

This is an excerpt from the latest version perlfaq1.pod, which
comes with the standard Perl distribution. These postings aim to
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at http://faq.perl.org .


1.13: 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.

    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.


The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
are not necessarily experts in every domain where Perl might show up,
so please include as much information as possible and relevant in any
corrections. The perlfaq-workers also don't have access to every
operating system or platform, so please include relevant details for
corrections to examples that do not work on particular platforms.
Working code is greatly appreciated.

If you'd like to help maintain the perlfaq, see the details in

Site Timeline