in reply to trap warnings in $@
Why use eval here? To simply run a command and check its return code, I would use something like:
my $out = `$command`; # $out contains the command stdout my $rc = $? >> 8; # $rc contains command return code [download]