Я извлечение некоторые данные из библиотеки Perl, используяНовое в Perl и Смущает хэшей и благослови
print Dumper($each_host->hardware->cpuInfo)."\n\n";
Что я вернусь есть.
$VAR1 = bless({
'hz' => '2199999664',
'numCpuCores' => '20',
'numCpuPackages' => '2',
'numCpuThreads' => '40'
}, 'HostCpuInfo');
Я понятия не имею, как бороться с этим или тем, что есть. Моя цель - просто получить доступ к исходным значениям хэша, которые были возвращены вызовом Perl VMware SDK.
Он исходит из SDK VMware perl.
my $host_view = Vim::find_entity_views(view_type=>'HostSystem',properties=>['name','config','hardware'],begin_entity=>$each_dc);
foreach my $each_host(@$host_view){
print "\n\t".$each_host->name."\n";
print Dumper($each_host->hardware->cpuInfo)."\n\n";
Когда я сделал данных :: Принтер
HostCpuInfo {
Parents DynamicData
public methods (1) : get_property_list
private methods (0)
internals: {
hz 2199999664,
numCpuCores 20,
numCpuPackages 2,
numCpuThreads 40
}
}
SO Я изменил вверх код:
print Dumper($each_host->hardware->cpuInfo->numCpuPackages)."\n\n";
my $array1 = $each_host->hardware->cpuInfo->get_property_list;
print 'return'.$array1."\n\n";
print Dumper($each_host->hardware->cpuInfo->get_property_list);
и возвращает
$VAR1 = '2';
return4
$VAR1 = [
'dynamicType',
undef,
undef,
0
];
$VAR2 = [
'dynamicProperty',
'DynamicProperty',
1,
0
];
$VAR3 = [
'numCpuPackages',
undef,
undef,
1
];
$VAR4 = [
'numCpuCores',
undef,
undef,
1
];
$VAR5 = [
'numCpuThreads',
undef,
undef,
1
];
$VAR6 = [
'hz',
undef,
undef,
1
];
Благодарности
Это значит, что у вас есть объект класса 'HostCpuInfo'. Вы должны использовать методы этого класса для доступа к значениям, хотя вы можете получить доступ к указанному объекту как к хешу. – ikegami
Что такое библиотека Perl, которую вы используете? Пожалуйста, покажите свою программу – Borodin
. Однако я не уверен, как получить доступ к numCpuThreads или любым другим значениям в hash – BostonMacOSX