seekFILEHANDLE,OFFSET,WHENCE
This function positions the file pointer for FILEHANDLE, just
like the fseek(3) call of standard I/O.  The first position in a
file is at offset 0, not offset 1, and offsets refer to byte positions,
not line numbers.  (In general, since line lengths vary, it's not
possible to access a particular line number without examining the whole
file up to that line number, unless all your lines are known to be of a
particular length, or you've built an index that translates line numbers
into byte offsets.)  FILEHANDLE may be an expression
whose value gives the name of the filehandle or a reference to a filehandle
object.  The function returns 1 upon success, 0 otherwise.
For handiness, the function can calculate offsets from various file
positions for you.  The value of WHENCE specifies which file
position your OFFSET is relative to: 0, the beginning of
the file; 1, the current position in the file; or 2, the
end of the file.  OFFSET may be negative for a WHENCE of
1 or 2.
One interesting use for this function is to allow you to follow growing files, like this:
for (;;) {
    while (<LOG>) {
        ...           # Process file.
    }
    sleep 15;
    seek LOG,0,1;      # Reset end-of-file error.
}The final seek clears the end-of-file error without moving the pointer. If that doesn't work (depending on your C library's standard I/O implementation), then you may need something more like this:
for (;;) {
    for ($curpos = tell FILE; $_ = <FILE>; $curpos = tell FILE) {
        # search for some stuff and put it into files
    }
    sleep $for_a_while;
    seek FILE, $curpos, 0;
}Similar strategies could be used to remember the seek addresses of each line in an array.