diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2002-04-08 18:56:58 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-04-08 18:56:58 +0000 |
commit | f05bbc4047b4e519eb0edbaf2fce2004f4838d1a (patch) | |
tree | de226ce5a9d015aefd62d1b704bb24f8d232801f /pod/perlfaq5.pod | |
parent | fdd579e2dc5d0da16b7e86246a01f0d838120df7 (diff) | |
download | perl-f05bbc4047b4e519eb0edbaf2fce2004f4838d1a.tar.gz |
FAQ sync. (Ignoring the few URL differences for now.)
p4raw-id: //depot/perl@15813
Diffstat (limited to 'pod/perlfaq5.pod')
-rw-r--r-- | pod/perlfaq5.pod | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/pod/perlfaq5.pod b/pod/perlfaq5.pod index 701a757558..4030824bf2 100644 --- a/pod/perlfaq5.pod +++ b/pod/perlfaq5.pod @@ -1,6 +1,6 @@ =head1 NAME -perlfaq5 - Files and Formats ($Revision: 1.12 $, $Date: 2002/03/11 22:25:25 $) +perlfaq5 - Files and Formats ($Revision: 1.14 $, $Date: 2002/04/07 18:33:45 $) =head1 DESCRIPTION @@ -763,21 +763,7 @@ more fun to use the standard DB_File module's $DB_RECNO bindings, which allow you to tie an array to a file so that accessing an element the array actually accesses the corresponding line in the file. -On very rare occasion, you may have an algorithm that demands that -the entire file be in memory at once as one scalar. The simplest solution -to that is - - $var = `cat $file`; - -Being in scalar context, you get the whole thing. In list context, -you'd get a list of all the lines: - - @lines = `cat $file`; - -This tiny but expedient solution is neat, clean, and portable to -all systems on which decent tools have been installed. For those -who prefer not to use the toolbox, you can of course read the file -manually, although this makes for more complicated code. +You can read the entire filehandle contents into a scalar. { local(*INPUT, $/); @@ -790,6 +776,13 @@ close the file at block exit. If the file is already open, just use this: $var = do { local $/; <INPUT> }; +For ordinary files you can also use the read function. + + read( INPUT, $var, -s INPUT ); + +The third argument tests the byte size of the data on the INPUT filehandle +and reads that many bytes into the buffer $var. + =head2 How can I read in a file by paragraphs? Use the C<$/> variable (see L<perlvar> for details). You can either |