sub mylog { my (@fields) = @_; my $entry = join ( "|", @fields ); open my $fh, ">>" . &MYLOG or die "can't open " . &MYLOG . ": $!"; flock $fh, LOCK_EX; print $fh $entry . "\n"; close $fh; } #### #untested! open my $fh, "|bin/rotatelogs /var/logs/%y_%m_%d_%H_%M_%S 14400" or die "can't open pipe to rotatelogs: $!";