:( Sadly I don't think I can wrangle FIFO's to my needs. I read the File::Tail docs (why does it need Time::HiRes?) , which would be cool for a daemon type execution, but hoping I was to only run this script at intervals.
Closer inspection of Perl InANutShell led me to this...
open ( COUNT , '<counter');
my $whence = scalar <COUNT>;
open ( FH , "<logfile" );
# scram to position we wrote last to 'counter'
seek FH, $whence , 0;
my $line = scalar <FH>;
my $count = tell FH;
open ( COUNT , '>counter' );
print COUNT $count;
Which exhibits the behaviour(s) that I believe are needed, in this test case, the script prints the next single line from 'logfile' and exits - saving it's position in logfile to 'counter'. OK so I had to seed counter with '0' first!!
This is destined to run on rh7.3, perl5.6.1 - what scares me most is how squid will behave with another
process reading from the logfile it's writing too.