in reply to Re^2: ReadBackwards usage
in thread Readbackwards usage

Hello jayu_rao,

Here are two possible solutions:

(1) Create the temporary file using the core module File::Temp and get the filename together with the handle:

use File::Temp 'tempfile'; ... my ($fh, $filename) = tempfile(); my $bw = File::ReadBackwards->new($filename) or die "Cannot read '$filename' backwards"; while (my $log_line = $bw->readline) { ... }

(2) Use the File::ReadBackwards TIED HANDLE INTERFACE, which accepts a filehandle:

my $filename = 'data.txt'; open(my $bw, '<', $filename) or die "Cannot open file '$filename' for reading"; tie *$bw, 'File::ReadBackwards', $filename or die "Cannot read '$filename' backwards"; while (my $log_line = <$bw>) { ... }

(Note the asterisk in tie *$bw — this is required. Also note the two different ways of reading the next line from the file: readline vs. <$bw>. N.B.: they are not interchangeable!)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,