I got a "Permission denied" error when I tried to unlink the log file because the file still had an open handle on it. This was despite all references had seemed to have gone out of scope.
In the end, I found that the handle belonged to the singleton instance in Log::Dispatch::Config. The way I got around this was to call:
Log::Dispatch::Config->__instance(undef);
It might be worth including something in the public interface to do this.