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