in reply to Open pipe to a function?

Have you looked at IO::Tee?

The PerlMonk tr/// Advocate