[inseparable changes from patch from perl5.003_11 to perl5.003_12]
[p5sagit/p5-mst-13.2.git] / ext / IO / lib / IO / Seekable.pm
CommitLineData
8add82fc 1#
2
3package IO::Seekable;
4
5=head1 NAME
6
7IO::Seekable - supply seek based methods for I/O objects
8
84dc3c4d 9=head1 SYNOPSIS
10
27d4819a 11 use IO::Seekable;
12 package IO::Something;
13 @ISA = qw(IO::Seekable);
84dc3c4d 14
8add82fc 15=head1 DESCRIPTION
16
17C<IO::Seekable> does not have a constuctor of its own as is intended to
18be inherited by other C<IO::Handle> based objects. It provides methods
19which allow seeking of the file descriptors.
20
21If the C functions fgetpos() and fsetpos() are available, then
22C<IO::File::getpos> returns an opaque value that represents the
23current position of the IO::File, and C<IO::File::setpos> uses
24that value to return to a previously visited position.
25
26See L<perlfunc> for complete descriptions of each of the following
27supported C<IO::Seekable> methods, which are just front ends for the
28corresponding built-in functions:
29
30 clearerr
31 seek
32 tell
33
34=head1 SEE ALSO
35
36L<perlfunc>,
37L<perlop/"I/O Operators">,
27d4819a 38L<IO::Handle>
39L<IO::File>
8add82fc 40
41=head1 HISTORY
42
27d4819a 43Derived from FileHandle.pm by Graham Barr E<lt>bodg@tiuk.ti.comE<gt>
8add82fc 44
45=head1 REVISION
46
27d4819a 47$Revision: 1.5 $
8add82fc 48
49=cut
50
51require 5.000;
52use Carp;
53use vars qw($VERSION @EXPORT @ISA);
54use IO::Handle qw(SEEK_SET SEEK_CUR SEEK_END);
55require Exporter;
56
57@EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
58@ISA = qw(Exporter);
59
27d4819a 60$VERSION = sprintf("%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/);
8add82fc 61
62sub clearerr {
63 @_ == 1 or croak 'usage: $fh->clearerr()';
64 seek($_[0], 0, SEEK_CUR);
65}
66
67sub seek {
68 @_ == 3 or croak 'usage: $fh->seek(POS, WHENCE)';
69 seek($_[0], $_[1], $_[2]);
70}
71
72sub tell {
73 @_ == 1 or croak 'usage: $fh->tell()';
74 tell($_[0]);
75}
76
771;