As 'jfroebe' said below, xpdformat is probably also writing to STDERR (which is *NOT* captured by backticks). Read about STDERR by doing
perldoc -q STDERR
at a command prompt. The perldoc '-q' says to search the perldoc documentation for string "STDERR". Here's a snippet from that:
Found in C:\Perl\lib\pod\perlfaq8.pod
How can I capture STDERR from an external command?
There are three basic ways of running external commands:
system $cmd; # using system()
$output = `$cmd`; # using backticks (``)
open (PIPE, "cmd |"); # using open()
With system(), both STDOUT and STDERR will go the same place as th
+e
script's STDOUT and STDERR, unless the system() command redirects
+them.
Backticks and open() read only the STDOUT of your command.
Here's another snippet:
-----------------------
You can also use file-descriptor redirection to make STDERR a dupl
+icate
of STDOUT:
$output = `$cmd 2>&1`;
open (PIPE, "cmd 2>&1 |");
And another snippet:
--------------------
...To capture a command's STDERR and STDOUT together:
$output = `cmd 2>&1`; # either with backticks
$pid = open(PH, "cmd 2>&1 |"); # or with an open pipe
while (<PH>) { } # plus a read
Anyway, hope that helps.