$Key = $Registry->Open( "LMachine/Software/Vibac_Calls/CallsList/Fields", {Access=>KEY_READ(),Delimiter=>"/"} ) or warn "OPEN: $Key -> (ERROR: $^E)\n"; my @regFields = $Key->SubKeyNames; $data_mycalls{fields} = (); for my $x(0..$#regFields) { my $fieldKey = $Registry->Open( "LMachine/Software/Vibac_Calls/CallsList/Fields/$regFields[$x]", {Access=>KEY_READ(),Delimiter=>"/"} ) or warn "OPEN: $Key -> (ERROR: $^E)\n"; #print (join " ", keys %{$fieldKey}) . "\n"; my @regValues = $fieldKey->ValueNames; #THIS IS THE LINE IN MY CODE WHERE THE ERROR APPEARS for my $y(0..$#regValues) { $data_mycalls{fields}[$x]{$regValues[$y]} = $fieldKey->GetValue($regValues[$y]); } } #### sub _enumValues { my $self= shift(@_); $self= tied(%$self) if tied(%$self); my( @names )= (); my $pos= 0; my $name= ""; my $nlen= 1+$self->Information("MaxValNameLen"); while( $self->RegEnumValue($pos++,$name,$nlen,[],[],[],[]) ) { push( @names, $name ); } if( ! _NoMoreItems() ) { return (); } $self->{VALUES}= \@names; return 1; } sub ValueNames { my $self= shift(@_); $self= tied(%$self) if tied(%$self); @_ and croak "Usage: \@names= \$key->ValueNames;"; $self->_enumValues unless $self->{VALUES}; return @{$self->{VALUES}}; #THIS IS THE LNE THAT THROWS THE ERROR } #### Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields] [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\0] "field"="calls.id" "header"="ID" "visible"="1" "width"="32" "type"="" "recordlink"="" "displaylink"="" "sort"="ASC" "sorttype"="number" "displaypos"="0" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\1] "field"="calls.caller" "header"="Caller" "visible"="1" "width"="100" "type"="" "recordlink"="users2.id" "displaylink"="users2.fullname" "sort"="" "sorttype"="text" "displaypos"="1" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\2] "field"="calls.responder" "header"="Responder" "visible"="0" "width"="100" "type"="" "recordlink"="users2.id" "displaylink"="users2.fullname" "sort"="" "sorttype"="text" "displaypos"="2" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\3] "field"="calls.details" "header"="Details" "visible"="1" "width"="240" "type"="" "recordlink"="" "displaylink"="" "sort"="" "sorttype"="text" "displaypos"="3" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\4] "field"="calls.resolution" "header"="Resolution" "visible"="1" "width"="182" "type"="" "recordlink"="" "displaylink"="" "sort"="" "sorttype"="text" "displaypos"="4" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\5] "field"="calls.time" "header"="CallDate" "visible"="1" "width"="109" "type"="" "recordlink"="" "displaylink"="" "sort"="ASC" "sorttype"="number" "displaypos"="5" [HKEY_LOCAL_MACHINE\SOFTWARE\Vibac_Calls\CallsList\Fields\6] "field"="calls.closed" "header"="Closed" "visible"="1" "width"="40" "type"="check" "recordlink"="" "displaylink"="" "sort"="" "sorttype"="number" "displaypos"="6"