use strict; use warnings; use Win32::OLE qw(in with valof) ; use constant RUNNING=>5; my @VMList; #Connect to Virtual Server my $VirtualServer = Win32::OLE->new('VirtualServer.Application' ) or die "Oops, cannot Connect to Host Virtual server\n" & Win32::OLE->LastError(); print "Name: " . valof $VirtualServer->Name() . "\n"; foreach my $vm (in $VirtualServer->VirtualMachines) { print " Name: " . valof $vm->Name . " State: " . valof $vm->State . "\n"; }