http://qs1969.pair.com?node_id=1187875


in reply to Re^2: determine the variable causing the error: Use of uninitialized value
in thread determine the variable causing the error: Use of uninitialized value

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}