#!/usr/bin/perl use warnings; use strict; use Test::NoWarnings; use Test::More tests => 2; my $old = $SIG{__WARN__}; $SIG{__WARN__} = sub { my ($w) = @_; return if $w =~ /Eh/; warn $w; $old->(@_) if $old; }; ok(1); warn 'Eh'; # Will be ignored. warn 'Error'; # Will be reported.