in reply to open(F, "|-") && SIG{ALRM}

That looks to me like a doc bug. I would guess it should read:

$SIG{PIPE} = sub { die "whoops, $program pipe broke" };

A broken pipe will generate a SIGPIPE signal when calling close().

--
3dan