in reply to kill won't kill the process I opened

Perl kill != *nix kill. According to kill:

A negative signal name is the same as a negative signal number, killing process groups instead of processes. For example, kill '-KILL', $pgrp and kill -9, $pgrp will send SIGKILL to the entire process group specified. That means you usually want to use positive not negative signals.
With kill 'KILL', $cam_pid I got:
$ ./pm1054213.pl cmd running: 7808 killing cmd: 7808 cmd closed off dead and buried!