The moment I were reading your second post (your reply to yourself), I had the feeling that it might be a scope thing, as you said the only difference was that you used a sub.
The lesson here is again, that good old advice:
Use "use strict" and "use warnings" all the time.
There is a good editing software, called EditPlus. It supports template, every time you new a perl file, this template will pop up, and then you can add your code on top of the template. You can set different template for each language.
My template for perl is:
#!/usr/bin/perl
use strict;
use warnings;
So there is no chance for me to forget or to be lazy.
EditPlus is a freeware, you can download it. Just go google.com, and search for editplus.
It can also highlight syntax, match brace, implicitly ftp (so you can edit files on remote host, as if they are local)...Give a try, see whether you like it.