in reply to Re: Re: Error msg "requires explicit package name"
in thread Error msg "requires explicit package name"

No, my is a variable declaration and should only be used the first time a lexical variable is referenced. Using two my's in the same scope creates two variables, and with -w will give this warning:
"my" variable $i masks earlier declaration in same scope
The reason you may see it more than once on the same variable is because the variable is being created new every time. For example:
for(my $i=0;$i<10;$i++) { print $i,"\n"} for(my $i=9;$i>=0;$i--) { print $i,"\n"}
uses two completely different $i variables that happen to have the same name, because the scope of $i is only inside the loop.

Maybe that just confused you more, but hope it's helpful! :-)