Windows does not actually have signals. There is no SIGPIPE on Windows, so Perl is emulating it somehow. My guess is that close attempts to flush buffers, which are empty at that point in your program, so flushing them is a no-op on *nix, (only an actual write triggers SIGPIPE — flushing an empty buffer does not count) but Perl emulates SIGPIPE on Windows by asking the OS if the pipe is still connected. It is not, so "SIGPIPE" is raised.
In reply to Re: question on getting SIGPIPE in close
by jcb
in thread question on getting SIGPIPE in close
by perl-diddler
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |