use Win32::Registry; qx(regedit /s "c:\\Program Files\\Microsoft Office\\Office\\power.reg); $main::HKEY_CURRENT_USER->Open("Software\\Microsoft", $Microsoft) || die "Can't open Software\\Microsoft key: $!\n"; $Eight = MakeTree($Microsoft, "Office\\8.0"); $Eight->GetKeys(\@Eight); foreach $key (@Eight) { $Key->SetValue("Default", REG_SZ, $HomeDir); $Key->GetValues(\%KeyVals); if (%KeyVals) { $KeyVal = $KeyVals{""}; $AutoGrammer = $KeyVals{"AutoGrammar"}; } else { $Key->SetValueEx("AutoGrammar", 0, REG_SZ, "0"); $Key->SetValueEx("Run Already", 0, REG_DWORD, "1"); } # Create multilevel hive structure sub MakeTree { my ($SubTree, $Path) = @_; $Path =~ s#^\\##; my (@KeyList) = split(/\\/, $Path); my $key; my $RegKey = $SubTree; foreach $key (@KeyList) { # print "Key being created is: $key\n"; $RegKey->Create($key, $RegKey) || die "Can't create $key key: $!\n"; } return $RegKey; }