Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Different ways of opening file in perl

Tags:

file

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?

like image 864
Mihran Hovsepyan Avatar asked Dec 10 '22 08:12

Mihran Hovsepyan


1 Answers

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 $!;
like image 60
DavidO Avatar answered Jan 05 '23 09:01

DavidO