in reply to Re: New Monks Info Page
in thread New Monks Info Page

-w is not actually equivalent to use warnings. The most obvious difference is that the warnings pragma is only available in perl5.6.0 and later.

The other, very important difference is that -w is global, while use warnings is lexical. -w will turn on warnings for all the code used by the script, including in other files. use warnings, on the other hand, will only enable warnings for the block in which it occurs. If you put use warnings in your main script, you won't get warnings from the modules that you use.

It is probably sufficient to recommend -w for new programmers; it works in all versions of Perl, and is the most general way of getting warnings.

Replies are listed 'Best First'.
Re3: New Monks Info Page
by pmas (Hermit) on Jun 11, 2001 at 21:57 UTC
    Not so fast. What if beginner is facing some lazily written module/code which fails with -w? To avoid frustration, we should suggest that:
    1. -w is lazy, version-independent way to get warnings
    2. if it fails, and they are using perl above 5.6.0, then they should use warnings after failing module was used.

      Point 2 can be hidden in link, named "if -w fails", so only point 1 will be visible.

      I am sure somebody can write it in better english. : )

      Just my $0.02.

      I think we are going to another extreme: from not enough links for newbies, to spending too much time on dicussion about links for newbies....

      Let them to do some homework, to have some fun, too.


    To make errors is human. But to make million errors per second, you need a computer.