Backticks are less efficient than using open() and |. For one thing, backticks have to read the whole result into memory at once. For another, having the second process running while you're dealing with the input allows the scheduler to be more efficient.
Additionally, backticks interpolate, which can cause issues with set-id scripts. Pipes get around this.
Being right, does not endow the right to be rude; politeness costs nothing. Being unknowing, is not the same as being stupid. Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence. Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
| [reply] |
For the latter issue, regarding interpolation of the command string itself, see qx// with single-quotes.
$output = qx' command @which $should not be interpolated ';
-- [ e d @ h a l l e y . c c ]
| [reply] [d/l] [select] |