http://qs1969.pair.com?node_id=741540


in reply to file state mannagment

You do it like this:
foreach $log (@logfiles) { rename($log,$log.".tmp"); ProcessLogfile($log.".tmp"); } foreach $log (@logfiles) { del($log.".tmp"); };
this way, everything that is logging, will keep on logging into it's open filedescriptor (ie - the new data will go into .tmp file).

The problem is - how long are your external logging processing keeping their logfile descriptors open, the key part being - are they keeping their descriptors opened indefinitely? Then you're out of luck and can't really do what you're trying to achieve.

If their logging method is

open(LOG,">>logfile"); print LOG "memo"; close LOG;
then the method described above would work OK.