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.
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-2011 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)