dwww Home | Manual pages | Find package

File::...Access(3pm)  User Contributed Perl Documentation File::...Access(3pm)

NAME
       File::RandomAccess - Random access reads of sequential file or scalar

SYNOPSIS
           use File::RandomAccess;

           $raf = File::RandomAccess->new(\*FILE, $disableSeekTest);

           $raf = File::RandomAccess->new(\$data);

           $err = $raf->Seek($pos);
           $num = $raf->Read($buff, $bytes);

DESCRIPTION
       Allows random access to sequential file by buffering the file if
       necessary.  Also allows access to data in memory to be accessed as if
       it were a file.

METHODS
       new Creates  a  new  RandomAccess  object  given  a  file  reference or
           reference to data in memory.

               # Read from open file or pipe
               $raf = File::RandomAccess->new(\*FILE);

               # Read from data in memory
               $raf = File::RandomAccess->new(\$data);

           Inputs:
               0) Reference to RandomAccess object or RandomAccess class name.

               1) File reference or scalar reference.

               2)  Flag  set  if  file  is  already  random  access  (disables
               automatic SeekTest).

           Returns:
               Reference to RandomAccess object.

       SeekTest
           Performs   test  seek()  on  file  to  determine  if  buffering  is
           necessary.  If the seek() fails, then the file is buffered to allow
           random access.  SeekTest() is automatically called from new  unless
           specified.

               $result = $raf->SeekTest();

           Inputs:
               0) Reference to RandomAccess object.

           Returns:
               1 if seek test passed (ie. no buffering required).

           Notes:
               Must be called before any other i/o.

       Tell
           Get current position in file

               $pos = $raf->Tell();

           Inputs:
               0) Reference to RandomAccess object.

           Returns:
               Current position in file

       Seek
           Seek  to  specified  position in file.  When buffered, this doesn't
           quite behave like seek() since it returns success even if you  seek
           outside the limits of the file.

               $success = $raf->Seek($pos, 0);

           Inputs:
               0) Reference to RandomAccess object.

               1) Position.

               2) Whence (0=from start, 1=from cur pos, 2=from end).

           Returns:
               1 on success, 0 otherwise

       Read
           Read data from the file.

               $num = $raf->Read($buff, 1024);

           Inputs:
               0) Reference to RandomAccess object.

               1) Buffer.

               2) Number of bytes to read.

           Returns:
               Number of bytes actually read.

       ReadLine
           Read a line from file (end of line is $/).

           Inputs:
               0) Reference to RandomAccess object.

               1) Buffer.

           Returns:
               Number of bytes read.

       Slurp
           Read whole file into buffer, without changing read pointer.

           Inputs:
               0) Reference to RandomAccess object.

           Returns:
               Nothing.

       BinMode
           Set binary mode for file.

           Inputs:
               0) Reference to RandomAccess object.

           Returns:
               Nothing.

       Close
           Close the file and free the buffer.

           Inputs:
               0) Reference to RandomAccess object.

           Returns:
               Nothing.

OPTIONS
       NoBuffer
           Avoid buffering sequential files.

               $raf->{NoBuffer} = 1;

           When  this  option  is  set,  old  data is purged from the internal
           buffer before a read operation on a sequential file.  In this mode,
           memory requirements  may  be  significantly  reduced  when  reading
           sequential  files,  but  seeking  backward is limited to within the
           size of the internal buffer (which will be at least as large as the
           last returned data block), and seeking relative to the end of  file
           is not allowed.

AUTHOR
       Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       Image::ExifTool(3pm)

perl v5.38.2                      2024-02-03              File::...Access(3pm)

Generated by dwww version 1.16 on Tue Dec 16 17:08:02 CET 2025.