use Test::Trap qw/ :output(systemsafe) /; $_sendError = ""; trap { $msg->send('smtp', 'mail.wholewellnessclub.com', AuthUser=>'somemailuser@somedomain.com', AuthPass=>'$_encEmPass') || $_sendError = $@ }; $_ and $_sendError = $_ for $trap->die, $trap->stdout, $trap->stderr; if($_sendError) { return 0; } else { return 1; }