Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Perl fIle handles

by wind (Priest)
on Jun 15, 2011 at 16:58 UTC ( #909812=note: print w/ replies, xml ) Need Help??


in reply to Perl fIle handles

The second one, a lexical file handle, is better (although you can drop the first line). This is because the file handle is scoped and will be automatically closed and destroyed when perl leaves the block that created it.

You can create a lexical file handle from a fileglob by just taking its reference:

my $sh = \*SHAKESPEARE;

But it is best to open the lexical file handle directly, and the three parameter form of open when write mode:

open my $fh, $file or die "Can't open $file::$!";


Comment on Re: Perl fIle handles
Select or Download Code
Re^2: Perl fIle handles
by mikeraz (Friar) on Jun 15, 2011 at 17:16 UTC

    But it is best to open the lexical file handle directly, and the three parameter form of open when write mode:

    open my $fh, $file or die "Can't open $file::$!";
    Did you mean
     open my $fh, (some mode string of + < > >>), $file or die "Can't open $file::$!";

    ??


    Be Appropriate && Follow Your Curiosity

      No, actually I just wanted to demonstrate that he could include the my within the open statement, but I can see how you could think I was implying something else. It was up to him to simply read the docs for open to see how to use the three parameter form.

      Also, I'd advise against ever using the three parameter form of open when wanting read mode. It's much better to just let read mode be assumed so you don't risk putting the symbol in the wrong direction and overwriting your file.

      Just my .02

        Also, I'd advise against ever using the three parameter form of open when wanting read mode. It's much better to just let read mode be assumed so you don't risk putting the symbol in the wrong direction and overwriting your file.

        And risk having the second arg contain something scary?
        $file = '> somefile';

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://909812]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2014-07-12 18:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (240 votes), past polls