Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re^2: Common Perl Pitfalls

by dwalin (Monk)
on Apr 10, 2012 at 23:20 UTC ( #964420=note: print w/ replies, xml ) Need Help??

in reply to Re: Common Perl Pitfalls
in thread Common Perl Pitfalls

First solution is not equal to last two, as it implies that INPUTFILE is already open. I would say that the correct idiom looks like this:

my $slurp = do { open my $fh, '<', "inputfile"; local $/; <$fh> };

P.S. I really like the second one, thanks. Not for production use, of course. :)


Comment on Re^2: Common Perl Pitfalls
Download Code
Replies are listed 'Best First'.
Re^3: Common Perl Pitfalls
by JavaFan (Canon) on Apr 10, 2012 at 23:32 UTC
    Considering that Joe_'s example uses the handle INPUTFILE, I don't have any problems with the implication, and I really don't see the need to come up with the snobby term correct idiom. (You consider a piece of code with error handling to be correct idiom? You're fired).
    I really like the second one, thanks. Not for production use, of course. :)
    Why not? It's not significant different from your correct idiom. It misses error handling (but then, so does your correct idiom), but that's easily handled: just add a // die "slurp: $!";.

      Considering that Joe_'s example uses a handle and your last two use filename, it could be confusing for a novice.

      Why I wouldn't use the second example in production? Readability. Not everybody is familiar with intimate relationship between @ARGV and <>, and this solution doesn't really give any advantage over the common one.

      P.S. As for your show-off harshness, I care less for anti-snobs than I do for snobs. You didn't hire me, you have no authority to fire me. Have a good day sir.


        Not everybody
        Ah, but I don't have to write my production code for everybody. At best, only a hundred or so eyes will see my production code before it's obsolete or rewritten.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2015-11-27 00:51 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (710 votes), past polls