Jim Gibson <[email protected]> writes:
> At 3:57 PM -0500 10/24/09, Harry Putnam wrote:
>>Sorry about being tricky with what was an older thread. But I suspect
>>that thread died... and no one noticed there was an unaswered question
>>still there.
> Or no one knew the answer.
He he... unlikely here I think..
[...]
> I would modify the above a little. You are calling eof after each
> line, which is unnecessary. The input operator <FILE> will return
> undef whenever eof will return true, so calling eof is redundant. You
> can make this a little more efficient with something like the
> following (untested):
>
> while(1) {
> while(<FILE>) {
> print;
> }
> sleep 1;
> seek(FILE,0,1);
> }
>
That does look like it might be better... and thanks for the explanation.
[...]
>>
>> use File::Tail;
>> $file=File::Tail->new("/some/log/file");
>> while (defined($line=$file->read)) {
>> print "$line";
>> }
>
> That looks OK, and works for me on /var/log/system.log, although the
> delays are longer using File::Tail than Unix tail. Maybe you should
That isn't actually the version I used .. its a bit lower on the page
you cited above... but I can't see anything that make it work any
different.
cat fltr_sl
[...]
use File::Tail;
my ($file,$line);
my $fname_in = "/var/adm/slpipe";
$file=File::Tail->new("$fname_in");
while (defined($line=$file->read)) {
print "$line";
}
> try it on a normal file that you write to occasionally with another
> Perl program.
One question, in your test you didn't actually run it against a
named-pipe did you? Would that be likely to make a difference?
Taking your suggestion I see the script above will ouput from a normal
file.
touch t1
./filterWithFileTail.pl (edited to open ./t1)
while [[ 1 ]];do
echo "Now you've done it" >> t1
sleep 1
cat ~/.bash_history >> t1
sleep 1
done
The File::Tail filter does eventually output the data coming in. You
mentioned it's slower.. it seems a good bit slower here.
But it will NOT ouput data from the named pipe.
I ran the same while loop writing to the named pipe and still the perl
filter with File::Tail won't output a thing.
Anyway I have a working script... soon to modify with your
suggestions. .. thanks for the help.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/