use Win32::TieRegistry( Delimiter=>"#", ArrayValues=>0 ); $pound= $Registry->Delimiter("/"); $targetKey= $Registry->{"HKEY_CURRENT_USER/Software/Microsoft/Office/12.0/Common/"} or die "Can't read the key: $^E\n"; $data= $key->{"/General"} or die "Can't read the key: value: $^E\n"; foreach $entry ( keys(%$targetKey) ) { ... } foreach $subKey ( $targetKey->SubKeyNames ) { ... } $targetKey->AllowSave( 1 ); $targetKey->RegSaveKey( "C:/TEMP/testReg", [] );