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