I cannot reproduce your problem:
Copied the module Win32::TieRegistry and renamed the copy as Win32::TieRegistry64.
Changed package Win32::TieRegistry; to package Win32::TieRegistry64;.
Changed
BEGIN {
$PACK = 'Win32::TieRegistry';
$VERSION = '0.26';
@ISA = 'Tie::Hash';
}
to
BEGIN {
$PACK = 'Win32::TieRegistry64';
$VERSION = '0.26';
@ISA = 'Tie::Hash';
}
Changed
# Basic master Registry object:
$RegObj= {};
@$RegObj{qw( HANDLE MACHINE PATH DELIM OS_DELIM ACCESS FLAGS ROOTS )}=
+ (
"NONE", "", [], "\\", "\\",
KEY_READ|KEY_WRITE, $Flag_HexDWord|$Flag_FixNulls, "${PACK}::_Root
+s" );
to
# Basic master Registry object:
sub KEY_WOW64_64KEY () { 0x0100 }
sub KEY_WOW64_32KEY () { 0x0200 }
$RegObj= {};
@$RegObj{qw( HANDLE MACHINE PATH DELIM OS_DELIM ACCESS FLAGS ROOTS )}=
+ (
"NONE", "", [], "\\", "\\",
KEY_READ|KEY_WRITE|KEY_WOW64_64KEY|KEY_WOW64_32KEY, $Flag_HexDWord
+|$Flag_FixNulls, "${PACK}::_Roots" );
The resulting module contains the variable $Registry (a blessed hash reference) which is still accessible:
15:39 >perl -Mstrict -MWin32::TieRegistry64 -wE "say $Registry;"
Win32::TieRegistry64=HASH(0x17155bc)
15:55 >
Perhaps you missed one of the steps above? Or there’s something more you haven’t shown?