in reply to The importance of avoiding the shell

A couple modules that can avoid the shell: IPC::System::Simple's systemx and capturex; IPC::Run3 (when called with an arrayref). There are lots of other modules out there that do similar things, but it's important to read the docs: Many of them don't specify whether they can avoid the shell!