http://www.perlmonks.org?node_id=204973

submersible_toaster has asked for the wisdom of the Perl Monks concerning the following question:

Hello PerlMonks,

Having an idea in mind, but not sure how to go about it, I seek your collective wisdom.

Presently I have a script watching/analysing the access.log from squid. Being a little dubious about opening this file whilst squid is busy with it, my script gives squid a squid -k rotate , then reads the rotated log access.log.0

On reflection, this is pretty bad magic - particularly when squid is being flogged by our users, it can take some time before it gets around to rotating the log.

I'd like to find a better way to read this log periodically , preferably as short or long a period as desired. My first thought was to make the script aware of what position/byte/line was last read, when it was last run, hence begin parsing the log from that point. This would require some form of persistence, and some extra filehandle voodoo suchas provided by FileHandle->getpos.

Second idea was to use some kind of pipe arrangement , where access.log is a special file with a script connected to the other end.

Where does this leave me? - Right now I have One Idea, Half a Script, >=2 Directions to go, and 0 Clue what to do next Please Help.