Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

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

by artist (Parson)
on Aug 29, 2003 at 16:47 UTC ( #287747=note: print w/ replies, xml ) Need Help??


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

Also available is File::Slurp.

use File::Slurp; my $string = read_file("somefile.txt");


Comment on Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
Download Code
Re: Re: Perl Idioms Explained - my $string = do { local $/; <FILEHANDLE> };
by diotalevi (Canon) on Aug 29, 2003 at 17:04 UTC

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

      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)

        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.

        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://287747]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2014-10-02 06:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (49 votes), past polls