There is another one from perl monks, that may be easier:
this one is good for fixed length records in a data file or you can adapt
this
to search for \n as well, like the other
# gets last 100 bytes of the file
if (open (FH, "file"))
{
seek FH, -100, 2;
while (<FH>)
{
print $_;
}
close (FH);
}
> -----Original Message-----
> From: Nikola Janceski [mailto:nikola_janceski@;summithq.com]
> Sent: Monday, October 28, 2002 2:42 PM
> To: 'Kipp, James'
> Subject: RE: Trailing 5 lines of a file
>
>
> thanx... I think I can fix it to get any number of lines that
> I ask for.
>
> > -----Original Message-----
> > From: Kipp, James [mailto:James.Kipp@;mbna.com]
> > Sent: Monday, October 28, 2002 2:09 PM
> > To: 'Nikola Janceski'; Beginners (E-mail)
> > Subject: RE: Trailing 5 lines of a file
> >
> >
> > >
> > > without using 'tail' how can I get the trailing 5 lines of a
> > > large file
> > > quickly, without loading it all to memory?
> > >
> > > is there anyway without pop and shifting through an array
> > > foreach line? (<=
> > >
> >
> > somebody posted this code last week, which gets the last line
> > of the file
> > --
> > open F, "file.txt" or die $!;
> > seek F, 0, 2;
> > while ($pos = tell F) {
> > seek F, -($pos > 1024 ? 1024 : $pos), 1 or die;
> > read F, $block, 1024;
> > $_ .= $block;
> > do {$last = $1; print "$last"; last} if /.+\n(.+)/s;
> > }
> >
> > ---
> > the part I am not sure about is the do block ( i never use
> > them). This works
> > for getting last line, so it should not be too hard to change
> > it to get the
> > last 5
> >
>
> --------------------------------------------------------------
> --------------
> --------------------
> The views and opinions expressed in this email message are
> the sender's
> own, and do not necessarily represent the views and opinions of Summit
> Systems Inc.
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]