use Test::NoWarnings; use Test::Warn; warning_like ( sub { $obj->get_member_id_by_name('smith'); }, qr /than/, 'warns when more than one name returned' ); #### my $had_no_warnings; if (had_no_warnings) { $had_no_warnings = 1; } warning_like ( sub { $obj->get_member_id_by_name('smith'); }, qr /than/, 'warns when more than one name returned' ); clear_warnings if $had_no_warnings;