package Win32::TieRegistry::Dump; our $VERSION = 0.031; # Bug fix by sb@engelschall.com & use 5.006; use strict; use Carp; use Win32::TieRegistry ( Delimiter=>"/", ArrayValues=>0 ); no strict 'refs'; =head1 NAME Win32::TieRegistry::Dump - dump Win32 registry tree =head1 SYNOPSIS use Win32::TieRegistry::Dump $_ = Win32::TieRegistry::Dump::toArray ("LMachine/Software/LittleBits/"); while (my ($key, $value) = each %{$_} ){ warn "$key = $value\n"; } exit; =head1 FUNCTION toArray Returns a reference to a hash of values in a Win32 registry tree, keyed by registry entry. =cut sub toHash { my $literal = shift or carp __PACKAGE__."::toArray requires an argument" and return undef; my $rkey = $Registry->{$literal} or warn "* Can't read the registry key for $literal:\n $^E\n" and return undef; return &_iterate ($rkey,$literal); } =head1 FUNCTION toArray Returns an array of keys and values in a Win32 registry tree. =cut sub toArray { my $literal = shift or carp __PACKAGE__."::toArray requires an argument" and return undef; my $rkey = $Registry->{$literal} or warn "* Can't read the registry key for $literal:\n $^E\n" and return undef; $_ = &_iterate ($rkey,$literal); @_ = (); foreach my $i (keys %$_){ push @_, "$i/$_->{$i}"; } return @_; } sub _iterate { my ($key,$root) = (shift,shift); my $info = shift || {}; foreach my $entry ( keys(%$key) ) { if ($key->SubKeyNames){ &_iterate( $key->{$entry}, $root.$entry, $info ); } else { $info->{$root.$entry} = $key->{$entry}; } } return $info; } 1; # Return cleanly from module =head1 DEPENDENCIES Win32::TieRegistry =head1 EXPORTS None. =head1 AUTHOR Lee Goddard Mailto: =head1 LICENCE AND COPYRIGHT Copyrigh (C) 2001-2003 Lee Goddard This is free software made available under the same terms as Perl itself; =head1 SEE ALSO See L; L;