use Win32::TieRegistry( TiedRef => \my $Reg, Delimiter => '/', ); if( ! $Reg->('CUser/xxx/yyy/zzz//value'} ) { $Reg->{'CUser/xxx/'}= { yyy => { zzz => { '/value' => 'data' } } }; }