http://www.perlmonks.org?node_id=917

Number one: when in doubt use perl -w, or replace #!/usr/bin/perl with #!/usr/bin/perl -w this will give you all kinds of helpful diagnostics when things don't seem to be happening as you'd expect them to.

Number two: use use strict; just toss that in at the top of your program and it will force you to declare your variables before you use them. To declare them all you have to do is something like the following:
my $stuff;
my @array;
my %hash;
my ($count,$max,$min,$avg); #this initializes several scalars at once
This can save you countless hours later if you've mistyped a variable name. You'll know about it.