The "use of uninitialized value" error arise when you
use a variable that hasn't been defined before.
As for debugging your code, make sure you put
use warnings;
use strict;
at the beginning of your script. Also, when asking
for help make sure you reduce your code to a minimum
(try to post only the part of the code causing the errors),
and giving the exact errors messages would help too.
Other than
that, to debug you could add more "or die" statements and
sprinkle your code with "print" statements outputting the
value of your variables to make sure they contains what
you think they contains.
Guillaume