in reply to help on dereferencing structure

I would write this as: (UNTESTED)
for my $datastore (@{ $var->{'config.datastoreUrl'} }){ print $datastore->{name}, " ", $datastore->{url},"\n"; }
But a more official access method would be:
# Assumes you have a $vm object. my $datastores = Vim::get_views(mo_ref_array => $vm->{'datastore'}, properties => ['name','url']); foreach (@$datastores) { print " " . $_->{'name'} . "\n"; }

        "You're only given one little spark of madness. You mustn't lose it."         - Robin Williams