Использование Cygwin Perl v5.8.8 и Win32 :: TieRegistry 0.26.Почему не может быть список под Win32 :: TieRegistry?
Мы можем получить привязанную хэш-объект вещь для HKEY_CURRENT_USER:
$ perl -e '
my %RegHash;
use Win32::TieRegistry(TiedHash => \%RegHash);
use Data::Dumper;
my $Key = $RegHash{"HKEY_CURRENT_USER"};
print Dumper $Key;'
$VAR1 = bless({}, 'Win32::TieRegistry');
И это работает для суб ключей:
$ perl -e '
my %RegHash;
use Win32::TieRegistry(TiedHash => \%RegHash);
use Data::Dumper;
my $Key = $RegHash{"HKEY_CURRENT_USER\\Software"};
print Dumper $Key;'
$VAR1 = bless({}, 'Win32::TieRegistry');
И мы можем напечатать информацию для ключа:
$ perl -e '
my %RegHash;
use Win32::TieRegistry(TiedHash => \%RegHash);
use Data::Dumper;
my $Key = $RegHash{"HKEY_CURRENT_USER\\Software"};
print Dumper $Key->Information;'
$VAR1 = 'CntSubKeys';
$VAR2 = 48;
$VAR3 = 'MaxSubClassLen';
$VAR4 = 21;
...
Однако документация подразумевает, что мы можем перечислить вспомогательные ключи, просто обработав ее как хэш:
$ perl -e '
my %RegHash;
use Win32::TieRegistry(TiedHash => \%RegHash);
use Data::Dumper;
my $Key = $RegHash{"HKEY_CURRENT_USER\\Software"};
print Dumper keys %$Key; '
Но массив пуст. Разбито ли я, или я что-то делаю неправильно? Есть ли другой способ перечислить вспомогательные ключи?
Это не работает либо:
$ perl -e '
my %RegHash;
use Win32::TieRegistry(TiedHash => \%RegHash);
use Data::Dumper;
my $Key = $RegHash{"HKEY_CURRENT_USER\\Software"};
print Dumper $Key->SubKeyNames;'
Can't use an undefined value as an ARRAY reference at
/usr/lib/perl5/vendor_perl/5.8/cygwin/Win32/TieRegistry.pm line 720.
У меня такая же проблема на cygwin с perl 5.10.1 и TieRegistry v0.25 – dsummersl