(warning: I might be dead wrong about this, but this is how I understand it) Assume you have a subroutine, and you set a variable called $mystuff. You also have a variable called $mystuff in your main program. use strict will keep you from running the program if you try to use $mystuff in your program without indicating which $mystuff you're talking about. This sounds harmless, but it's harder to figure out without using strict since you can't tell where your variable's getting screwed up - the subroutine or the main program. End result: Strict makes sure you keep your variables where they belong, rather than referring to some other structure (subroutine, module, etc.)'s variables.
Why warnings?
They help you figure stuff out. From experience, it's a lot easier to fix your program when you're writing it, than once it's already been installed and otherwise working!
Snippets of code should be wrapped in
<code> tags not<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).