Those messages are not errors, they're warnings. They are both warning you that variables are being used before they are set to anything. Imagine something like:
$var1 = "Something";
print $var1 . $var2;
You can see that $var2 has not been set to anything. In Perl that is not an error, since an undefined value becomes a blank string in string context, but it is a pointer to sloppy coding or a mistake - hence why you get the warning when perl warnings are turned on.
Update: Original had a typo where I said $var1 instead of $var2. Thanks to AnomalousMonk