By reading from STDOUT (or STDERR) you can look at the output of external commands, without running them through the shell via backticks.
The thing is, I have never seen this recommended anywhere for anything. Are there hazards associated with doing this? If so, what are they? Is there a better way of e.g. setting up pipelines in Perl (or other scripting languages) that does *not* rely on the system command shell?
You get command invocation *without using the shell* with somewhat less cumbersome syntax. When you invoke system() on a list rather than a string, it bypasses the shell when running the external command.
Though you can do the same with open in current Perl versions, the syntax is just a bit clunky:
Or something like that. Cool to hear opening pipelines works on Windows anyway.