On Wed, 2007-09-05 at 07:06 -0400, Chas Owens wrote:

> On 9/4/07, sivasakthi <[EMAIL PROTECTED]> wrote:
> snip
> >  Thanks for your suggestions.. but i need to read a file from backwards...
> > First time reading from backwards & set the last line position to one
> > variable..next time reading backwards until reach that variable position...
> > is it possible to achieve that..????
> snip
> 
> Yes, just save the value of tell before reading anything (this will be
> the end of the file) and then stop reading when you reach that
> position in the file.  I have included a sample script that does that
> very thing.  It saves the position in a growing data section at the
> end (to give it something to read on the next run).  I am having a
> hard time coming up with a reason why you would want to read a file
> that grows in size backwards; if you don't mind my asking, why do you
> need to do such an odd thing?
> 


Thanks for your response.. 
I have need to collect the possibilities of  reading the log files and
submitted to team for analyse.... 

the following code also achieved my requirement,

#!/usr/bin/perl
use strict;
use warnings;
use File::ReadBackwards ;

my $bw = File::ReadBackwards->new( '/log/path' ) or
die "can't read 'log_file' $!" ;

my $first=1;
open(FH,"position.txt");
$pos=<FH>;
close FH;
my $log_line;
while( defined( $log_line = $bw->readline ) ) {
       my  $cur_pos=$bw->tell;
        if($pos != $cur_pos) {
                if($first) {
                        open(FH,">position.txt");
                        print FH $cur_pos;
                        close FH;
                        undef $first;
                }
                print "$log_line";
        } else {
                exit;
            }
}


Thanks,
Siva

Reply via email to