To retrieve the value of a property defined as an enumeration, you must dereference its value from within the containing object by qualifying the property with ->val. For example, the power state of a virtual machine (powerState
) is a member of the runtime
data object.
To retrieve the value of powerState
, you must dereference the two containing objects (the view
object and the runtime
data object) and the value itself (val
), as follows:
$vm_view->runtime->powerState->val
Because powerState
is an enumeration, you use runtime->powerState->val to retrieve its string value.
foreach my $vm (@$vm_views) { if ($vm->runtime->powerState->val eq 'poweredOn') { print "Virtual machine " . $vm->name . " is powered on.\n"; } else { print "Virtual machine " . $vm->name . " is not powered on.\n"; }