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().