On Dec 11, 1:22 pm, [EMAIL PROTECTED] wrote:
> Using perldoc -q tail
> leading to
> perldoc -f seek
> perldoc -f tell
>
> I'm not getting how to use those functions.

There's a lot of things you're not getting, actually...

>                    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);
>                    }
>
> Even here what the heck does `;;' mean.

for( ; ; ) { }
is an infinite loop, as there is no condition telling the loop when to
end.  It's no different than
while (1) { }

> This stuff is supposed to be
> readable by someone who doesn't know these things.  

The hell it is.  You want the documentation for seek() to explain to
you how a for loop works?   Go read the documentation for 'for' if you
don't understand it.  The documentation for seek() need only be
readable to people who don't know seek() works.

> Even down to
> `curpos'.  I didn't get what it meant for a few seconds.  Why not
> spell it out... $CurrentPostion.  After all clarity is what we're
> after here.

Well, gee, since the point of these functions is to seek to a position
in a file, and to tell you what the current position of a file is, is
it really that much of a leap to think that "curpos" might stand for
"current position"?   Nevertheless, if you think that's a problem, no
one's stopping you from submitting a documentation bug fix, using
perlbug.


> However, I still don't see how it is supposed to work.  Is there a law
> against simple examples? hehe.
>  (ok enough complaining ...)

More than enough, actually.  You passed "complaining" and entered
"whining" quite a while ago.

> seek documentation indicates the for loop probably won't be necessary
> unless the IO implementation is `particularly cantankerous'.  So I'm
> guessing there is some easier way to access the stuff below where I've
> told the interpreter to seek to.
>
> It left me thinking something like this should work but it absolutely
> fails to print tell() from seek(FILE, -($bytes -100) ,2) position.
>
> use strict;
> use warnings;
>
> my $bytes;
> open(FILE,">>./myfile")or die " Can't open ./myfile: $!";
>      $bytes = tell(FILE);
>    print "hpdb pre seek bytes <$bytes>  \n";
> print FILE "line\nline\nline\nline\n";
>
> ## go back to 100 bytes before previous end of file.
> seek(FILE, -($bytes -100) ,2);
> while(<FILE>){
>    print "hpdb tell by line:" . tell(FILE) . "\n";}
>
> close(FILE);

This has absolutely nothing to do with you not understanding seek()
and tell(), but rather you not understanding open().  You've opened a
file for appending, and then you're trying to read from that
filehandle.  You can't do that.

Read
perldoc -f open
for how to open a file in read/write mode.

Paul Lalli


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to