Provided by: libimage-exiftool-perl_9.46-1_all bug

NAME

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

SYNOPSIS

           use File::RandomAccess;

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

           $raf = new File::RandomAccess(\$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 = new File::RandomAccess(\*FILE);

               # Read from data in memory
               $raf = new File::RandomAccess(\$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.

AUTHOR

       Copyright 2003-2014 Phil Harvey (phil at owl.phy.queensu.ca)

       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)