You said that you've RTFM, but you seem to be under the impression that Win32::Daemon is only for installing the service. While you can install a service with Win32::Daemon, you need to use the functions of Win32::Daemon within your script that is going to become a service. Did you read all the examples at the bottom of the docs? They all show how it's used. If I take a script that writes to a file and use Win32::Daemon to install it as a service, it's going to tell me that it didn't start.