Finally, for something so simple, consider just system.
The point to using IPC::Run
is that you can invoke another program with arguments and some I/O-redirection without having anything re-interpreted by a shell. For instance, system("/bin/cpio -ov >$tape")
won't work as desired if $tape
has a space in it.
Using the multi-argument form of system allows you to specify a command's arguments without worrying about shell re-interpretation. IPC::Run extends this capability to include simple I/O-redirection. The next step would be the ability to set up complete pipelines of commands without having to use a shell.