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

Re: Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };

by Wally Hartshorn (Friar)
on Aug 29, 2003 at 19:53 UTC ( #287819=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
in thread Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };

But why get a module and a function just for this two expression idiom?

I guess the main reason would be that it would be fairly self-evident, even to a Perl newbie, what File::Slurp does and how to use it. I think the first time someone comes across the code in the OP (and perhaps the second and third times as well), they will find it a bit mystifying. Remembering how to use it in their own code could also be a bit difficult.

That's not to say that there's an overwhelming reason to use File::Slurp, just that it could certainly be justified for reasons of code clarity.

Disclaimer: I've never used File::Slurp. I'm assuming that it doesn't suck. :-)

Wally Hartshorn

(Plug: Visit JavaJunkies, PerlMonks for Java)


Comment on Re: Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
Re: Re: Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
by benn (Priest) on Aug 30, 2003 at 10:34 UTC
    Disclaimer: I've never used File::Slurp. I'm assuming that it doesn't suck. :-)

    I have - it doesn't :). It also includes "write_file()", "append_file()" and "read_dir()", making it often one of the first modules I use when starting with a 'blank canvas'.

    Cheers, Ben.

Re: Re: Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
by John M. Dlugosz (Monsignor) on Sep 02, 2003 at 20:33 UTC
    I tried File::Slurp once, and found that it didn't take an argument for opening the file in binary mode. So I couldn't use it in the spot I planned it for! I included my own slurp function, called something like read_whole_file, in the program that did what I needed. This gives the benifit of it being more readable than the idiom, the ability to change it in once place only (after all, if they forgot binmode what else might go wrong some day?), and no hassle of installing a module.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-10-31 07:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (215 votes), past polls