I don't understand what you are doing, and you aren't showing enough code. the "use Some::Thing;" goes by file on your disk, never what is inside the file. It has no connection to the packages declared in that file. Usually a Perl module file's name will be identical to the package statement in the that module for sanity reasons.
OK, it's like this: to solve a problem, I have to make changes to the TieRegistry module. But to be safe, I didn't change on it directly. Instead, I made a copy and change the copied one and renamed it as TieRegistry64 in the same Perl lib folder as TieRegistry. But error mentioned happens and I didn't know how to fix at the moment.
The TieRegistry is a standard module of Perl. In normal time when I "use Win32:TieRegistry", I can use $Registry directly without error. I found one line in TieRegistry:
use vars qw( $RegObj %_Roots %RegHash $Registry );