in reply to Best practices for executable name in system() or exec()

If you just want to execute a program rather then a shell command, then you can use the multiple argument form of either, and you won't have to worry about escaping.

system('cat foo bar'); # Cats 'foo' and 'bar' system('cat', 'foo bar'); # Cats 'foo bar' system('some command'); # Executes 'some' system({ 'some command' } 'some command'); # Executes 'some command'

Some escapes aren't possible in Windows, so avoid " and control characters.