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);
- 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();
- Tell
-
Get current position in file
$pos = $raf->Tell();
- 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);
- Read
-
Read data from the file.
$num = $raf->Read($buff, 1024);
- ReadLine
-
Read a line from file (end of line is $/).
- Slurp
-
Read whole file into buffer, without changing read pointer.
- BinMode
-
Set binary mode for file.
- Close
-
Close the file and free the buffer.
AUTHOR
Copyright 2003-2017 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.