Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: My habitual errors (are with open)

by grinder (Bishop)
on Apr 04, 2007 at 19:28 UTC ( [id://608358]=note: print w/replies, xml ) Need Help??


in reply to My habitual errors

I get a couple with open. These days, I've expunged globs from my file handling code, and now use lexicals exclusively. That is, I write:

open my $fh, '<', $file or die...

as opposed to

open IN, '<', $file or die ...

so the mistake I find myself now making regularly is:

my $fh = open # *pauses*

and I realise I've messed up and start the line over. Still, at least I catch that as I'm writing it. This is an improvement over the previous situation, where I would regularly write:

open IN "< $file" or die ...

And not spot anything was amiss until I ran the code and the compiler complained about syntax errors. Some say that's progress...

• another intruder with the mooring in the heart of the Perl

Replies are listed 'Best First'.
Re^2: My habitual errors (are with open)
by Moron (Curate) on Apr 05, 2007 at 14:48 UTC
    I found that open my $fh doesn't even work for older versions of Perl and have to do something like open \*FH, "blah"; my $fh = \*FH; for old Perls which has a similar effect as the embedded my $fh but isn't quite the same as the erm a bit barer globs you are talking about... But to make code portable between versions without those hardcoded globs, the only way I could think of is something like:
    use FileHandle; my $fh = new FileHandle "< $file"; $fh -> open;
    It just so happens that this way you can put your $fh on the left after all. Unfortunately, for anonymous pipes your point of confusion moves a bit rather than disappears...
    use FileHandle; my $ph = new FileHandle "ps -ef |"; my $pid = $ph -> open; # and you're sort of back where you started.

    -M

    Free your mind

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2024-04-25 08:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found