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.