seek( $fh,0,1 );
That's the "no-op" seek. You're saying to seek 0 relative bytes from the current position. That's pretty much where you already are.
Perhaps you want to rewind the file, which would be either rewind $fh or seek $fh, 0, 0.
-- Randal L. Schwartz, Perl hacker
| [reply] [d/l] |
seek( FH, 0, 0 );
...the first argument refers to the filehandle, the second argument to the offset, and the third one of three positions in the file(beginning, current, end).
I see my mistake was thinking of 'offset' as equivalent to line numbers, which it is not. It refers to byte positions. So, my new question is: Is 'byte positions' really as simple as it sounds(the positions of the byte in the file)? So if I knew the exact byte position that I wanted to seek to I could enter it as the offset argument and be taken right there?
Amel - f.k.a. - kel | [reply] [d/l] |
You are correct in your interpretation. And it is as simple as that. It only gets complicated if you need to do something like: "go to the line exactly half-way through the 20M file," since it's nigh on impossible to know the byte position of an arbitrary line number without reading through the entire file, a byte (or block, as it were) at a time. =( But as long as you know the byte position already, you're good to go.
bbfu
Seasons don't fear The Reaper.
Nor do the wind, the sun, and the rain.
We can be like they are.
| [reply] |
That did it. I guess I misinterpreted how to use 'seek'...time to hit the books again...THANKS!!!
Amel - f.k.a. - kel
| [reply] |
I would look into using getpos() and setpos() for doing what you want.
From the docs:
If the C functions fgetpos() and fsetpos() are available,
then `FileHandle::getpos' returns an opaque value that
represents the current position of the FileHandle, and
`FileHandle::setpos' uses that value to return to a
previously visited position.
/twerq
| [reply] [d/l] |