Hi, I have this code: #!/usr/local/bin/perl -w use Win32::Registry; my %RegType = ( 0 => 'REG_0', 1 => 'REG_SZ', 2 => 'REG_EXPAND_SZ', 3 => 'REG_BINARY', 4 => 'REG_DWORD', 5 => 'REG_DWORD_BIG_ENDIAN', 6 => 'REG_LINK', 7 => 'REG_MULTI_SZ', 8 => 'REG_RESOURCE_LIST', 9 => 'REG_FULL_RESOURCE_DESCRIPTION', 10 => 'REG_RESSOURCE_REQUIREMENT_MAP'); my $Register = "Software\\MICROSOFT\\Windows\\CurrentVersion\\explorer\\Shell Folders"; my $RegType, $RegValue, $RegKey, $value; my %values; $HKEY_LOCAL_MACHINE->Open($Register,$hkey)|| die $!; #$hkey="Common Desktop"; $hkey->GetValues(\%values); foreach $value (keys(%values)) { $RegType = $values{$value}->[1]; $RegValue = $values{$value}->[2]; $RegKey = $values{$value}->[0]; next if ($RegType eq ''); #do not print default value if not assigned $RegKey = 'Common Desktop' if ($RegKey eq ''); #name the default key print "$RegKey"; print " ($RegType{$RegType}) : "; SWITCH: { if ($RegType == 4) {printf "Ox%1x \n", unpack("L",$RegValue); last SWITCH; } if ($RegType == 5) {printf "Ox%1x", unpack("N",$RegValue); last SWITCH; } if ($RegType < 8 ) {printf "$RegValue\n"; last SWITCH; } print "\n"; } } $hkey->Close(); What i wanted is to print the value of the hash %values for the name "Common Desktop" only; Now it prints all thereis in th epath %values Hash (Name, Type, Value) for each value Thanks -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]