in reply to Determining if self is already running under WinNT/2000
You could have the program write its PID out ot a file on startup (using the $$ variable) and then use Proc::ProcessTable to check for the existance of a perl.exe running as that PID. This is how most init scripts on *nix platforms check to see if the program is already running.