In a message dated Wed, 4 Oct 2006, Smylers writes:

Trey Harris writes:
I remember not so many years ago when there were a lot of modules
floating around that required you to do "no strict" of various flavors
in order to use them.

Really?  How?

I wrote imprecisely. Not to "use" them in the sense of C<use Package>, but "use" in the sense of make use of them as described in the perldoc's synopsis--usually by dint of requiring undeclared package variables, barewords, or symbolic refs. Alias is one example, there were others.

You could always work around, but the docs assumed you had strictures turned off, so you were left to your own devices to determine what internal implementation decision was leading to problems operating under your level of stricture. (For example, a package that had string constants defined as subroutines like C<sub ERRCODE() { "ERRCODE" }> would behave differently than one that assumed barewords would work, but both might use identical examples of C<moose ERRCODE> in their perldocs.)

I still run across modules that need "no warnings".  (I won't name
names, because some of their authors post to this list ;)

Again, I can't see how.  If you use C<use warnings> in your program then
it is lexically scoped and only affects your code, not that of other
files you load in.

Again, I meant in code use, not in just loading--uninitialized value warnings being the main culprit there.

C<-w> does affect all files, but that's one of the reasons why C<use
warnings> is an improvement over C<-w>, because it lets the author of
each bit of code have control over it.

Yes indeed.

Trey

Reply via email to