I wonder if you are confusing anonymous pipes (indicated by the | symbol) and named pipes?
I started to think the very same thing after I posted my reply. It seems likely that's what the OP meant. Another point to keep in mind, you can create anonymous pipes using the pipe function, too. You don't have to use Perl's forking-pipe open call (though, I admit, it is very convenient).