in reply to Re^3: Preventing Use of uninitialized value.
in thread Preventing Use of uninitialized value.

Respectfully must disagree.

I never ever disable uninitialized value warnings. If the code in question is intended to support an uninitialized variable for the reasons you mentioned, and if a function is to be called that would emit such a warning, I write the coercion explicitly like frobnicate() if ($str // '') =~ $re;. On the other hand if the code is not expected to encounter an uninitialized value, getting a warning that it happened is part of what makes perl Perl ;-) It has facilitated quick debugging and bug-finding in literally thousands and thousands of cases for me.

When I need to disable once warnings, which I agree can be hugely unhelpful, I do so locally. For the cost of a couple of braces I enjoy the security of typos or kruft elsewhere being caught.


The way forward always starts with a minimal test.