我正在运行一个 Vmware 脚本,它运行到一半,然后失败并出现以下错误并退出:
Can't use an undefined value as an ARRAY reference at test.pl line 49
.
这是在具有约 4000 个虚拟机的 vCetner 清单上运行的。所以我希望脚本忽略这样的错误并继续运行直到它完成。目前脚本在上述错误后退出而没有任何输出。
这是我的代码,它给了我上述错误。我只粘贴了引起错误的几行:
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
print $vm_mo_ref."\n";
}
这是我为忽略错误所做的:
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
if (defined $vm_mo_ref)
{
print $vm_mo_ref."\n";
}
}
和
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
if (exists $vm_mo_ref)
{
print $vm_mo_ref."\n";
}
}
和
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
if ($vm_mo_ref)
{
print $vm_mo_ref."\n";
}
}
和
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
if (ref($vm_mo_ref) eq "ARRAY")
{
print $vm_mo_ref."\n";
}
}
和
foreach my $vm_mo_ref ( @{ $host_view->vm } )
{
if (ref($vm_mo_ref) eq "ManagedObjectReference")
{
print $vm_mo_ref."\n";
}
}
但是,以上五种具有“if”条件的方法都不起作用,我的脚本仍然失败/退出并出现上述错误。
顺便说一句,ManagedObjectReference
是 Vmware 特定的参考。
你能帮我解决这个错误并继续脚本的其余部分。谢谢。