Personal tools
Skip to content. | Skip to navigation
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.
The IPTables::ChainMgr package provides an interface to manipulate iptables policies on Linux systems through the direct execution of iptables commands. Although making a perl extension of libiptc provided by the iptables project is possible, it is easy to just execute iptables commands directly in order to both parse and change the configuration of the policy. Further, this simplifies installation since the only external requirement is (in the spirit of scripting) to be able to point IPTables::ChainMgr at an installed iptables binary instead of having to compile against a library.