my ($stdout, $stderr, $ret) = capture { system('foo', ($somearg ? ('--somearg' => $somearg ) : ()), ($otherarg ? ('--otherarg' => $otherarg) : ()), ); }; #### return { status => $s, ($optional_field ? (optional_field => $optional_field) : ()), };