use Win32::TieRegistry ( TiedHash => '%reg', Delimiter => '/' ); my $int = $reg{ 'Users/.Default/Control Panel/International' }; printf "%20s : %s\n", $_, $int->{ $_ } for keys %{ $int }; Geo/ : Win32::TieRegistry=HASH(0x1a29d38) /iCountry : 44 /iCurrDigits : 2 /iCurrency : 0 /iDate : 1 /iDigits : 2 /iLZero : 1 /iMeasure : 0 /iNegCurr : 1 /iTime : 1 /iTLZero : 1 /Locale : 00000809 /s1159 : AM /s2359 : PM /sCountry : United Kingdom /sCurrency : ú /sDate : / /sDecimal : . /sLanguage : ENG /sList : , /sLongDate : dd MMMM yyyy /sShortDate : dd/MM/yyyy /sThousand : , /sTime : : /sTimeFormat : HH:mm:ss /iTimePrefix : 0 /sMonDecimalSep : . /sMonThousandSep : , /iNegNumber : 1 /sNativeDigits : 0123456789 /NumShape : 1 /iCalendarType : 1 /iFirstDayOfWeek : 0 /iFirstWeekOfYear : 0 /sGrouping : 3;0 /sMonGrouping : 3;0 /sPositiveSign : /sNegativeSign : -