Your confusion may stem from the notions of how daemons are usually managed using a PID file that is named after the script. If you use Proc::PID::File, you can specify the PID file name, and thus support multiple instances of a daemon from the same source file.