You may even look at a wrapper of that module: Win32::Daemon::Simple. It'll take care of installation/deinstalation, logging, will store settings in registry for you allowing you to change them by calling the script with the right parameters, do the looping for you in such a way that the program responds to the service manager's requests in a timely matter, etc.
The only catch is that you have to install a patch to Win32::Registry from http://jenda.krynicky.cz. (It was once supposed to replace the Win32::Registry on CPAN & within libwin32, but that somehow never happened.)
Jenda Enoch was right!
Enjoy the last years of Rome.