Many thanks - this is what I needed. I also appreciate you explaining the $| = 1. As you suspected - I was hoping this flushed the LOG - which was not only incorrect but explains why this worked when I had the program outputting to STDOUT.
Adding the autoflush is working as expected.
Comment on Re^2: Proc::Daemon logging issue - log only populates on daemon exit