特定のプロセス ID に対して kill でシグナルを送ろうとしたときに、そのプロセスがすでに存在しない場合は kill は偽 (false) の値を返します。 これを利用して、特定のプロセスが存在するかどうかを調べることができます。
kill
unless (kill 0, $pid) { # プロセス ID が $pid のプロセスはもう存在しない }
シグナル番号 0 は特定のプロセスにシグナルを送れるかどうか調べるために用意されています。