or download this
If the filename begins with '|', the filename is interpreted as a comm
+and to which output is to be piped, and if the filename ends with a '
+|', the filename is interpreted as a command which pipes output to us
+. See "Using open() for IPC" in perlipc for more examples of this.