in reply to Sleep has high cpu
Not really an answer to your question (since I believe sleep() is not the culprit), but ... did you consider making this a service? It really isn't hard. See Win32::Daemon and Win32::Daemon::Simple.
Jenda