Personal tools
Skip to content. | Skip to navigation
IO::Tee objects can be used to multiplex input and output in two different ways. The first way is to multiplex output to zero or more output handles. The IO::Tee constructor, given a list of output handles, returns a tied handle that can be written to. When written to (using print or printf), the IO::Tee object multiplexes the output to the list of handles originally passed to the constructor. As a shortcut, you can also directly pass a string or an array reference to the constructor, in which case IO::File::new is called for you with the specified argument or arguments.
This package allows you to tie separate variables into a combined whole, using ties and other magic. This can be very useful when, say, you want a unified output from various different things that return data in different ways (STDIN/ERR, scalars, handles, etc).
IO::Tty and IO::Pty provide an interface to pseudo tty's.
IO::Zlib provides an IO:: style interface to Compress::Zlib and hence to gzip/zlib-compressed files. It provides many of the same methods as the IO::Handle interface.
This toolkit primarily provides modules for performing both traditional and object-oriented I/O) on things *other* than normal filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines. In the more-traditional IO::Handle front, we have IO::AtomicFile, which may be used to painlessly create files that are updated atomically. And in the "this-may-prove-useful" corner, we have IO::Wrap, whose exported wraphandle() function will clothe anything that's not a blessed object in an IO::Handle-like wrapper... so you can just use OO syntax and stop worrying about whether your function's caller handed you a string, a globref, or a FileHandle.
IPC::Cmd allows you to run commands platform independently, interactively if desired, but have them still work.
These are functions that spawn a given command and connects the standard output of the command for reading, standard output for writing, and standard error output for handling the errors.
This module allows you to run a subprocess and redirect stdin, stdout, and/or stderr to files and perl data structures. It aims to satisfy 99% of the need for using system, qx, and open3 with a simple, extremely Perlish API and none of the bloat and rarely used features of IPC::Run.
This is an object interface for System V messages, semaphores, and inter-process calls.
Calling Perl's in-built 'system()' function is easy; determining if it was successful is _hard_. Let's face it, '$?' isn't the nicest variable in the world to play with, and even if you _do_ check it, producing a well-formatted error string takes a lot of work. 'IPC::System::Simple' takes the hard work out of calling external commands. In fact, if you want to be really lazy, you can just write: use IPC::System::Simple qw(system); and all of your "system" commands will either succeed (run to completion and return a zero exit value), or die with rich diagnostic messages.