Sometimes, dereferencing through nested structures with this nessus modules tends to fail. For example, getting $hashref->{key1}->[0]->{key2}->[0]->{key3}->[0] breaks the program flow, if 'key3' does not exists, or ->{key3} is an empty string, which can happens quite often with the XML::Simple module. A possible solution is the Deep::Dive module, which performs exists() checks for each key in a chain. I applied this module here. The code is only partially tested. Thus, I might have introduced bugs, for example, when an '' is expected instead of an undef. But hey, it's Perl ;-).