cvs commit: perlfaq perlfaq5.pod

[email protected]
Newsgroups perl.cvs.perlfaq
Message-ID <[email protected]>
cvsuser     02/03/16 07:37:26

  Modified:    .        perlfaq5.pod
  Log:
  * from 'How can I read in an entire file all at once?'
       + removed answer involving `cat` since it's not Perl
       + added answer involving read(), since it's another way
       to do it.
  
  Revision  Changes    Path
  1.13      +9 -16     perlfaq/perlfaq5.pod
  
  Index: perlfaq5.pod
  ===================================================================
  RCS file: /cvs/public/perlfaq/perlfaq5.pod,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -w -r1.12 -r1.13
  --- perlfaq5.pod	11 Mar 2002 22:25:25 -0000	1.12
  +++ perlfaq5.pod	16 Mar 2002 15:37:26 -0000	1.13
  @@ -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.13 $, $Date: 2002/03/16 15:37:26 $)
   
   =head1 DESCRIPTION
   
  @@ -764,21 +764,7 @@
   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?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.