in reply to Unable to grab STDERR from a backtick command

I have the same problem with perl 5.10.1 under linux, but not with the original code, that works:

CMD : >>echddo 'arghh'<< RETURN_CODE: >>32512<< CMD_RESULT : >>sh: echddo: command not found <<

However, I want to trap an error from a simple command, but a bad one. For example, a misspelled command:

my $cmd = "hostnam";

Here I can't trap the error:

CMD : >>hostnam<< RETURN_CODE: >>-1<< CMD_RESULT : >><<

The odd thing is that if I redirect STDOUT/STDERR to a file instead, the error is redirected as expected.

`$cmd 1>./tmp 2>&1`; my $cmd_rc = $?; my $cmd_result = `cat ./t`;
CMD : >>hostnam<< RETURN_CODE: >>32512<< CMD_RESULT : >>sh: hostnam: command not found <<

Is there a better way to get the expected behavior without resorting to a file?