logo

internet.com
Join the free
WDVL newsletter!

home

Perl File Management

Opening and closing files

  • One of the main resources that your server provides is a file management system. CGI scripts, for example, use a multitude of supporting files in the server's file system such as temporary files, counter files, user files, data files, setup files, and libraries. Perl includes several excellent tools for working with these files.

  • First, Perl gives your scripts the ability to open files using the open function. The open function allows you to create a "filehandle" with which to manipulate a file. A filehandle is another name for a connection between the script and the server. Often, filehandles manage connections between the script and standard input, output, or error, however, in the case of open, any file can be read into a filehandle using the syntax:

    open ([FILE_HANDLE_NAME], "[filename]"); 
    

  • For example, we might open a data file for reading using

    open (DATA_FILE, "inventory.dat"); 
    

  • In this case, all of the lines of inventory.dat will be read into the filehandle "DATA_FILE" that Perl can then use within the program. However, you must also close a file once you are done with it. The syntax for closing a file is as follows:

    close ([FILE_HANDLE_NAME]); 
    

  • Finally, Perl gives you the ability to execute an error routine if there is a problem opening a file. The "or" logical operator is sometimes discussed in terms of a short circuit. For instance, the logic of the "or" operator is such that if the first expression evaluates to true, there is no need to evaluate the next. On the other hand, if the first expression evaluates to false, the second expression is executed.

  • Thus, using the double pipe (||) operator, you can specify the default action to perform if an "open" fails. In CGI applications, the alternate action executed is usually something like the subroutine, CgiDie located in cgi-lib.pl (discussed later today). For example, the following routine would execute the CgiDie subroutine if there was a problem opening "address.dat".

    open (ADDRESS_BOOK, "address.dat") ||
    &CgiDie("Cannot open address.dat"); 
    

  • Thus, if the script has a problem opening a needed file, the double pipe (||) operator provides a convenient and elegant way to quit the program and report the problem.

Additional Resources:

Formatting Control Structures
Table of Contents
Reading a File Line by Line

Up to => Home / Authoring / Scripting / Tutorial

Instantly look up a "techie" word using Webopedia!!


internet.com
e-commerce
WebDeveloper Network


Get in on the Ground Floor of Internet Publishing

Copyright 1999 internet.com Corporation. Legal Notices. Privacy Policy.

www.internet.com