I'm usually don't even want to supress the error (this usually means the input data is wrong and I need to deal with it)
If it's undefs in a Perl data structure that you seek...
sub seek_undef {
my ($ref,$path) = (@_,"");
if (ref $ref eq 'HASH')
{ seek_undef($ref->{$_}, $path."{$_}") for keys %$ref }
elsif (ref $ref eq 'ARRAY')
{ seek_undef($ref->[$_], $path."[$_]") for 0..$#$ref }
else { defined $ref or warn "undef at $path\n" }
}
seek_undef( {
foo => { quz=>{ abc=>"def", ghi=>undef } },
bar => { baz=>[ "jkl", undef, { ooo=>undef } ],
blah=>undef }, uuu => undef,
} );
__END__
undef at {foo}{quz}{ghi}
undef at {bar}{baz}[1]
undef at {bar}{baz}[2]{ooo}
undef at {bar}{blah}
undef at {uuu}