< BACKCONTINUE >

2.4 How to Run Perl Programs

The details of how to run Perl vary depending on your operating system. The instructions that come with your Perl installation contain all you need to know. I'll give short summaries here, just enough to get you started.

2.4.1 Unix or Linux

On Unix or Linux, you usually run Perl programs from the command line. If you're in the same directory as the program, you can run a Perl program in a file called this_program by typing perl this_program. If you're not in the same directory, you may have to give the pathname of the program, for example:

 perl /usr/local/bin/this_program

Usually, you set the first line of this_program to have the correct pathname for Perl on your system, because different machines may have installed Perl in different directories. On my computer, I use the following as the first line of my Perl programs:

#!/usr/bin/perl

You can type which perl to find the pathname where Perl is installed on your system.

You can make the program executable using the chmod program: for instance, you can type:

chmod 755 this_program

If you've set the first line correctly and used chmod, you can just type the name of the Perl program to run it. So, if you're in the same directory as the program, you can type ./this_program. If the program is in a directory that's included in your $PATH or $path variable, you can type this_program.[2]

[2] $PATH is the variable used for the sh, bash, and ksh shells; $path is used for csh and tcsh.

If your Perl program doesn't run, the error messages you get from the shell in the command window may be confusing. For instance, the bash shell on my Linux system gives the error message:

bash: ./my_program: No such file or directory

in two cases: if there really is no program called my_program in the current directory or if the first line of my_program has incorrectly given the location of Perl. Watch for that, especially when running programs from CPAN (see Appendix A), which may have different pathnames for Perl embedded in their first lines. Also, if you type my_program, you may get this error message:

bash: my_program: command not found

which means that the operating system can't find the program. But it's there in your current directory! The problem is probably that your $PATH or $path variable doesn't include the current directory, and so the system isn't even looking in the current directory for the program. In this case, change the $PATH or $path variable (depending on which shell you're using), or just type /my_program instead of my_program.

2.4.2 Macs

On Macs, the recommended way to save Perl programs is as "droplets"; the MacPerl documentation gives the simple instructions. Basically, you open the Perl program with the MacPerl application and then choose Save As and select the Type option Droplet.

You can drag and drop a file onto a droplet in order to use the file as input (via the @ARGV array—see the discussion in Chapter 6).

The new MacOS X is a Unix system on which you have the option of running Perl programs from the command line as described earlier for Unix and Linux systems.

2.4.3 Windows

On Windows systems, it's usual to associate the filename extension .pl with Perl programs. This is done as part of the Perl installation process, which modifies the registry settings to include this file association. You can then launch this_program.pl by typing this_program in an MS-DOS command window or by typing perl this_program.pl. Windows has a PATH variable specifying folders in which the system looks for programs, and this is modified by the Perl installation process to include the path to the folder for the Perl application, usually c:\perl. If you're trying to run a Perl program that isn't installed in a folder known to the PATH variable, you can type the complete pathname to the program, for instance perl c:\windows\desktop\my_program.pl.

< BACKCONTINUE >

Index terms contained in this section

$PATH or $path variable
chmod command, making Perl program executable
CPAN (Comprehensive Perl Archive Network)
      Perl pathnames, problems with
Linux
      Perl programs, running
Macintosh
      running Perl programs
MacOS X
      running Perl programs
names
      Perl pathnames 2nd
operating systems
pathnames
      Perl programs
Perl
      running programs
programs
     Perl
            running
            running on Macintosh
running Perl programs
      on Macintosh
      on Windows
this_program file
Unix
      Perl programs, running
Windows systems
      running Perl programs

© 2002, O'Reilly & Associates, Inc.