Especially to one “new to Perl,” let us repeat this very critical mantra: always begin your programs with:
This will probably cause new error-messages to be generated, and you should adjust your source-code as needed to eliminate them. Quite a number of bugs and “inexplicable behaviors” will be squeezed-out by doing this.
Perl is very much a “DWIM = Do What I Mean” language. Rightly or wrongly, it doesn’t impose many strictures upon what you write. It will try to adopt an interpretation that works, and, with it, to do what it thinks you mean. These two declarations will cause it be less-tolerant and more-strict ... flushing-out more errors at compile time. (The antonym of use is no, which you will occasionally also see in production code.)