Based on my work with Jellybean, I think SIGPIPE only occurs when there's an error, like a broken pipe. The underlying TCP/IP implementation seems to handle closes automatically. At least, I never had to do anything with them that the IO::Socket library didn't do for me.