nysus has asked for the wisdom of the Perl Monks concerning the following question:
I'm running a command from my perl script:
The lpass command will print to STDERR if there is a problem with the command or arguments it's passed. If it does, that, I'd like to modify that output. Is this possible at all?system(qq(lpass $cmd $args));
Normally, I'd capture the output with backticks and then modify the output if necessary. However, I can't do that because the lpass command does some special formatting to the text before sending it to STDOUT. I lose all this formatting if I use backticks. For example, if I do this when the command prints to STDOUT:
system(qq(lpass $cmd $args 2>&1 | tr 'p' 'x'));...I lose all the output's formatting. So I need to modify the output only when printed to STDERR.
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Modify system() call output only if printed to STDERR
by hippo (Archbishop) on Jan 24, 2018 at 16:44 UTC | |
by nysus (Parson) on Jan 24, 2018 at 17:14 UTC |