VMware is a topic about which I know virtually nothing. But apart from that...
in reply to Why does this not work? - Can't call method on an undefined value!!!
Your code is using modules that don't currently exist on CPAN. Are you using home-grown modules? If so, then you'll have to look more closely at your own local code base for "VMware::VIRuntime" (assuming it's documented), to see whether that helps to figure out what the problem is.
If you're using modules that used to exist on CPAN, then you should probably look for more recent modules that are currently supported (and might do a better job in terms of what you want to get done).
Having just browsed CPAN for "VMware" and related things, I noticed that the "See Also" sections of some modules make reference to other modules (like "VMware::VmPerl") that seem to have gone missing, so this is probably a somewhat volatile domain in terms of CPAN module life-spans.
But maybe the CPAN results for "VmWareESX" might be relevant? (I wouldn't have a clue whether they are or not.)