Personal tools
Skip to content. | Skip to navigation
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.
IPC::Run allows you run and interact with child processes using files, pipes, and pseudo-ttys. Both system()-style and scripted usages are supported and may be mixed. Likewise, functional and OO API styles are both supported and may be mixed. Various redirection operators reminiscent of those seen on common Unix and DOS command lines are provided.
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 module provides a shared memory cache accessed as a tied hash. Shared memory is an area of memory that is available to all processes. It is accessed by choosing a key, the ipc_key argument to tie. Every process that accesses shared memory with the same key gets access to the same region of memory. In some ways it resembles a file system, but it is not hierarchical and it is resident in memory. This makes it harder to use than a filesystem but much faster. The data in shared memory persists until the machine is rebooted or it is explicitly deleted.
IPC::ShareLite provides a simple interface to shared memory, allowing data to be efficiently communicated between processes.
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.