Mihran Hovsepyan
Mihran Hovsepyan

Reputation: 11088

Different ways of opening file in perl

I have seen that in perl sometimes to open a file for writing they use:

open(my $file_handle, ">$file_name");

And sometimes:

open(FILE_HANDLE, ">$file_name");

What is the difference?

Upvotes: 4

Views: 368

Answers (1)

DavidO
DavidO

Reputation: 13942

The first method you showed is the newer, and usually favorable method. It uses lexical filehandles (filehandles that are lexically scoped). The second method uses package-global typeglob filehandles. Their scoping is broader. Modern Perl programs usually use the 'my' version, unless they have a good reason not to.

You ought to have a look at perlopentut (from the Perl documentation), and perlfunc -f open (from the Perl POD). Those two resources give you a lot of good information. While you're there, look up the three argument version of open, as well as error checking. A really good way to open a file nowadays is:

open my $file_handle, '>', $filename or die $!;

Upvotes: 14

Related Questions