Here's a module that implements a daemon:
http://search.cpan.org/~jwied/Net-Daemon-0.38/lib/Net/Daemon.pm. AS the above mentioned, forking generally works on all major platforms, win32 is a little weird with regards to forks, it actually does threads instead, but that typically doesn't matter. In general a daemon just needs to fork itself in to the background, optionally changing it's process group and so forth and detaching from the current session. Functions for this are available in
POSIX.
In general this sounds pretty simple. Fork is extremely easy to use and, for the most part, portable enough.