--- Reg5 file to create sample keys: --- Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\_ATEST_\.Default\Curren0] @="myvalue1" [HKEY_CURRENT_USER\_ATEST_\.Default\current0?] @="myvalue2" [HKEY_CURRENT_USER\_ATEST_\.Default\current0肼] @="myvalue3" [HKEY_CURRENT_USER\_ATEST_\AppGPFault\Curren0] @="myvalue4" [HKEY_CURRENT_USER\_ATEST_\AppGPFault\current0肼] @="myvalue5" ------------- #### begin 640 reg5-format.reg M__Y7`&D`;@!D`&\`=P!S`"``4@!E`&<`:0!S`'0`<@!Y`"``10!D`&D`=`!O M`'(`(`!6`&4`<@!S`&D`;P!N`"``-0`N`#``,``-``H`#0`*`%L`2`!+`$4` M60!?`$,`50!2`%(`10!.`%0`7P!5`%,`10!2`%P`7P!!`%0`10!3`%0`7P!< M`"X`1`!E`&8`80!U`&P`=`!<`$,`=0!R`'(`90!N`#``!@!=``T`"@!``#T` M(@!M`'D`=@!A`&P`=0!E`#$`(@`-``H`#0`*`%L`2`!+`$4`60!?`$,`50!2 M`%(`10!.`%0`7P!5`%,`10!2`%P`7P!!`%0`10!3`%0`7P!<`"X`1`!E`&8` M80!U`&P`=`!<`&,`=0!R`'(`90!N`'0`,``_`%T`#0`*`$``/0`B`&T`>0!V M`&$`;`!U`&4`,@`B``T`"@`-``H`6P!(`$L`10!9`%\`0P!5`%(`4@!%`$X` M5`!?`%4`4P!%`%(`7`!?`$$`5`!%`%,`5`!?`%P`+@!$`&4`9@!A`'4`;`!T M`%P`8P!U`'(`<@!E`&X`=``P`+R`70`-``H`0``]`"(`;0!Y`'8`80!L`'4` M90`S`"(`#0`*``T`"@!;`$@`2P!%`%D`7P!#`%4`4@!2`$4`3@!4`%\`50!3 M`$4`4@!<`%\`00!4`$4`4P!4`%\`7`!!`'``<`!'`%``1@!A`'4`;`!T`%P` M0P!U`'(`<@!E`&X`,``&`%T`#0`*`$``/0`B`&T`>0!V`&$`;`!U`&4`-``B M``T`"@`-``H`6P!(`$L`10!9`%\`0P!5`%(`4@!%`$X`5`!?`%4`4P!%`%(` M7`!?`$$`5`!%`%,`5`!?`%P`00!P`'``1P!0`$8`80!U`&P`=`!<`&,`=0!R M`'(`90!N`'0`,`"\@%T`#0`*`$``/0`B`&T`>0!V`&$`;`!U`&4`-0`B``T` &"@`-``H` ` end #### #!/perl/bin/perl -w use UTF8; use Win32::TieRegistry 0.24 ; #"Classes" for HKEY_CLASSES_ROOT #"CUser" for HKEY_CURRENT_USER #"LMachine" for HKEY_LOCAL_MACHINE #"Users" for HKEY_USERS #"CConfig" for HKEY_CURRENT_CONFIG select STDERR;$|=1; select STDOUT;$|=1; my $col=1; $keyname='CUser\\_ATEST_'; print_key($Registry->{$keyname},$keyname,0); sub print_key { my ($cur_key, $keyname, $level)=@_; if ($col) { print "\n"; $col=0; } print " " x $level; $col=2; print "$keyname\\";my $nospaces=1; foreach $member ($cur_key->MemberNames) { if ($member =~ m|^(.+)\\$|) { $keyname=$1; if ($col) { print "\n"; $col=0; } $nospaces=0; print_key($cur_key->{"$keyname\\"}, "$keyname",$level+1); } elsif ($member =~ m|^\\(.*)$|) { $valuename=$1; $value=$cur_key->GetValue("$valuename"); $value=(defined $value)?$value:"(value not set)"; $value=(length($value))?$value:"(null)"; if (!$nospaces) {print " " x ($level+1); $col+=2;}; $nospaces=0; print "$valuename => $value"; if ($col) { print "\n"; $col=0; } } } } #### CUser\_ATEST_\ .Default\ Curren0♠\ => myvalue1 current0?\ => myvalue2 current0?\ => myvalue2 AppGPFault\ Curren0♠\ => myvalue4 current0?\Can't call method "MemberNames" on an undefined value at ./test.pl line 34.