Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Cheap idioms

by broquaint (Abbot)
on Oct 14, 2002 at 08:43 UTC ( #205000=note: print w/ replies, xml ) Need Help??


in reply to Cheap idioms

If I'm ever in the position where I need to slurp a file I'll go with IO::File's handy getcontents() method

my $contents = IO::File->new($filename)->getcontents();
I'm not sure how that benchmarks, but I'm of the opinion that it looks much more elegant ;)
HTH

_________
broquaint


Comment on Re: Cheap idioms
Download Code
Re^2: Cheap idioms
by Aristotle (Chancellor) on Oct 14, 2002 at 11:04 UTC

    It looks very neat indeed, but it loads over 1,000 lines of Perl code and an XS module in dependencies.. in a short(!) CGI script I wouldn't want that - but that's always a difficult environment. It's too much to type in a oneliner also, but that too is a special case.

    For a large, "proper" script it is too brief - you run the risk of bombing out with a Can't call method "getcontents" on an undefined value since you don't check whether new() succeeded.. it would have to look maybe like this:

    my $contents = do { my $fh = IO::File->new($filename) or die "Failed to open $filename +: $!"; $fh->getcontents(); }
    And now it doesn't look so neat anymore. :-( Juerd's idiom on the other hand has builtin error reporting.

    Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (13)
As of 2015-07-02 22:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (46 votes), past polls