On Tuesday 11 December 2007 15:53, [EMAIL PROTECTED] wrote:
>
> John W.Krahn <[EMAIL PROTECTED]> writes:
> >
> > On Tuesday 11 December 2007 14:09, [EMAIL PROTECTED] wrote:
> >>
> >> John W.Krahn <[EMAIL PROTECTED]> writes:
> >> >
> >> > use Fcntl ':seek';
> >> >
> >> > seek FILE, -100, SEEK_END or die "Cannot seek on './myfile' $!";
> >>
> >> Still seeing something I don't understand.  Using a working
> >> version of the code I posted (included at the end) telling seek to
> >> go to 100 bytes before the byte count at eof.  I see a small
> >> discrepancy in where it actually goes of 5-15 bytes.
> >>
> >> I didn't use Fcntl ':seek' because it appears to lack the other
> >> two operators (SEEK_SET, SEEK_CUR) referred to at perldoc -f seek.
> >
> > perldoc Fcntl
> > [ SNIP ]
> >        For ease of use also the SEEK_* constants (for seek() and
> >        sysseek(), e.g. SEEK_END) and the S_I* constants (for
> >        chmod() and stat()) are available for import.  They can be
> >        imported either separately or using the tags `:seek' and
> >        `:mode'.
>
> As you've no doubt noticed, I'm not the brightest bulb on the tree. I
> didn't really understand what that meant until your insistence it was
> available.  Even now I'm not sure what is meant by `imported
> separately or using the tags :seek and :mode to import.  Apparently
> some other syntax I have yet to try.... I'll experiment until I get
> that right later, but using: `
>
>    use Fcntl :seek;

$ perl -ce'use Fcntl :seek;'
syntax error at -e line 1, near "use Fcntl :"
-e had compilation errors.

perldoc -f use
       use Module VERSION LIST

       use Module VERSION

       use Module LIST

       use Module

       use VERSION


After the module name, which has to be a bareword, must follow a 
*list*, which cannot be barewords.


> fails if either SEEK_SET or SEEK_CUR are used in seek().  Whereas it
> works as expected if SEEK_END is put into seek();

It looks as if the SEEK_* constants are not being imported correctly.

A bareword will be treated as a string which will evaluate to 0 in 
numerical context so if one of them is supposed to be 0 it will always 
work.

You can also find the SEEK_* constants in the POSIX module.



John
-- 
use Perl;
program
fulfillment

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


Reply via email to