in reply to Re^4: Capture external program return value
in thread Capture external program return value

Indeed. And since IPC::System::Simple gives access to the list form for exec, might as well use it to save us from creating shell literals from the args.
use IPC::System::Simple qw( capture ); my $result = capture( blastall => ( -p => 'blastx', -d => $baz, -i => $foo, -o => $bar, ) );

But looking at what those args are, it seems to me that it makes no sense to use backticks, capture or capturex with -o. system (or IPC::System::Simple's version) would be more appropriate.