package SeekFile; use IO::File; use IO::Seekable; @ISA = qw(IO::File IO::Seekable); 1; use Fcntl qw(:seek); my $startpos = 10; my $endpos = 20; my $buffer; my $fh = SeekFile->new(); if($fh->open("< file")) { $fh->seek(SEEK_SET, 0); $fh->seek(SEEK_SET, $startpos); $fh->read($buffer, $endpos - $startpos, 0); $fh->close; }