Perl Open File

Summary : in this tutorial, you will learn how to open the file in Perl using the open() function. We are going to show you how to open the file for reading and writing with error handling.

Perl filehandle

A filehandle is a variable that associates with a file. Through a filehandle variable, you can read from the file or write to the file depending on how you open the file.

Perl open file function

You use open() function to open files. The open() function has three arguments:

  • Filehandle that associates with the file
  • Mode : you can open a file for reading, writing or appending.
  • Filename : the path to the file that is being opened.
open(filehandle,mode,filename)Code language: Perl (perl)

To open a file in a specific mode, you need to pass the corresponding operand to the open() function.

mode operand
read <
write >
append >>

The open file modes are explained in details as follows:

  • Read mode (<): you only can read the file but cannot change its content.
  • Write mode (>): If the file does not exist, a new file is created. If the file already exists, the content of the file is wipe out, therefore, you should use the write mode with extra cautious.
  • Append mode ( >>): as its name implied, you can open the file for appending new content to the existing content of the file. However, you cannot change the existing content in the file.

The following example demonstrates how to open the c:\temp\test.txt file for reading using the open() function.

open(FH, '<', 'c:\temp\test.txt');Code language: Perl (perl)

The open file returns true on success and false on failure. You can use the die() function to handle a file-opening failure. See the below example:

open(FH, '<', 'c:\temp\test.txt') or die $!;Code language: Perl (perl)

$! is a special variable that conveys the error message telling why the open() function failed. It could be something like “No such file or directory” or “Permission denied”. In case the file c:\temp\test.txt does not exist, you get an error message “No such file or directory”.

Closing the files

After processing the file such as reading or writing, you should always close it explicitly by using the close() function. If you don’t, Perl will automatically close the file for you, however, it is not a good programming practice. The filehandle should always be closed explicitly.

Let’s a look at the following example:

#!/usr/bin/perl
use warnings;
use strict;
my $filename = 'c:\temp\test.txt';