Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

tell() on sysread()

by perlcapt (Pilgrim)
on Oct 25, 2004 at 15:34 UTC ( #402249=perlquestion: print w/replies, xml ) Need Help??
perlcapt has asked for the wisdom of the Perl Monks concerning the following question:

I'm having problems getting tell() to return a value other than 0 after doing a sysread().
# in a loop after appropriate open $bytes = sysread($self->{FH},$self->{buffer},1024); print tell($self->{FH}),"\n";
$bytes is a lovely 1024, and there is good stuff in the buffer, but tell() is always returning 0; Is it my reference to a filehandle which works fine for sysread, but not for tell?
Update: merlyn explains why it doesn't work. The manual says to use sysseek(FH,0,1) which returns the offset just as implied. Problem understood and solved

Replies are listed 'Best First'.
•Re: tell() on sysread()
by merlyn (Sage) on Oct 25, 2004 at 15:41 UTC
      are you certain? beacuse the following works for me
      perl -e'open FH,"<"||die$!;$fh=\*FH;sysread($fh,$foo,256); $bar=tell($fh);print"$foo\n$bar\n";'
        Yet it fails miserably on Win32. The side-effects of using sysread are system-specific.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://402249]
Approved by tinita
[jdporter]: let me google that for me ;-)
[jdporter]: hex points explicitly to oct, which does the job. :-D
[jdporter]: omg, I f love Perl!
[choroba]: say unpack 'H*', pack 'B*', $mask =~ /0b([01]+)/;
[choroba]: use C instead of H to get the decimal number
[erix]: ( no love like f love )
[choroba]: f* love

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (9)
As of 2018-02-20 16:34 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (272 votes). Check out past polls.