When you call a vSphere API method by using vSphere SDK for Perl, and want to omit an optional argument, you can do one of two things.
- You can omit the argument.
$vm->PowerOnVM(host => $host); # with the optional host argument $vm->PowerOnVM(); # without the optional host argument
- You can supply
undef
as the value of the optional argument.$vm->PowerOnVM(host => undef);
Supplying undef
as the value of the optional argument is useful when the value of an argument, which might or might not be undef
, is contained in a variable, as in the following example.
my $host = Vim::find_entity_view( view_type => 'HostSystem', filter => { name => 'preferredHost' } ); $vm->PowerOnVM(host => $host);
You cannot use the empty string or the value 0 to represent undef
or an unset parameter.