I have the latest ActivePerl 5.6/5.8/5.10 installed on a RHEL5.2/OEL5.2 system and POSIX::pipe() is not working. Well, it does return 2 file descriptors, but both are useless. You can't read or write to them.
I found this while trying to take code originally written under Solaris where POSIX::pipe() worked for 5.6 - 5.10 with no issues.
Interestingly enough the built-in pipe() works fine, so I was able to work around it by changing the code to use it instead.
Just wanted people to be aware of the issue. I wasted a couple of days trying to track this one down.
--Dave