in reply to Re^3: My confession - I'm now strict-ing...
in thread My confession - I'm now strict-ing...

I would argue that, yes, that is an improvement in the quality of the code, in two respects:

1) By forcing you to declare your variable names - even if only with our - it offers a good degree of protection against inadvertently creating new variables when you intend to reference existing ones, but misspell them.

2) A my at the top-level scope of a module will keep that variable contained to the module, preventing weird inter-module dependencies such as those the OP encountered with his wanton use of do.

But, yes, you are right in that just blindly sticking my/our in front of every variable that strict complains about won't get you the full benefit of strict. Like any tool, it works best when you think about how you're using it.

Replies are listed 'Best First'.
Re^5: My confession - I'm now strict-ing...
by JavaFan (Canon) on Jan 28, 2010 at 09:11 UTC
    A my at the top-level scope of a module will keep that variable contained to the module, preventing weird inter-module dependencies such as those the OP encountered with his wanton use of do.
    If you put a my there, yes. But not if you put an our there. And that's fine with strict. Or if you use $::var, no my or our needed, strict still happy.

    And in general, I rather see do not being used in favour of use/require and a separate namespace, than the code using do modified to satisfy strict.