use warnings; use Win32::TieRegistry; my %Registry; use Win32::TieRegistry ( TiedHash => \%Registry ); print "$_\n" for keys %{$Registry->{LMachine}{SOFTWARE}};