я стараюсь обрабатывать следующий массив, который был создан с помощью get_pool_member_object_status_($pool)
Perl: Доступ и обработки объектов в массиве
$VAR1 = [
[
bless([
bless({
'member' => bless({
'address' => '192.168.100.141',
'port' => '80'
}, 'Common::IPPortDefinition'),
'object_status' => bless({
'availability_status' => 'AVAILABILITY_STATUS_GREEN',
'status_description' => 'Pool member is available',
'enabled_status' => 'ENABLED_STATUS_ENABLED'
}, 'LocalLB::ObjectStatus')
}, 'LocalLB::PoolMember::MemberObjectStatus'),
bless({
'member' => bless({
'address' => '192.168.100.142',
'port' => '80'
}, 'Common::IPPortDefinition'),
'object_status' => bless({
'availability_status' => 'AVAILABILITY_STATUS_GREEN',
'status_description' => 'Pool member is available',
'enabled_status' => 'ENABLED_STATUS_ENABLED'
}, 'LocalLB::ObjectStatus')
}, 'LocalLB::PoolMember::MemberObjectStatus'),
bless({
'member' => bless({
'address' => '192.168.100.143',
'port' => '80'
}, 'Common::IPPortDefinition'),
'object_status' => bless({
'availability_status' => 'AVAILABILITY_STATUS_GREEN',
'status_description' => 'Pool member is available',
'enabled_status' => 'ENABLED_STATUS_ENABLED'
}, 'LocalLB::ObjectStatus')
}, 'LocalLB::PoolMember::MemberObjectStatus'),
bless({
'member' => bless({
'address' => '192.168.100.144',
'port' => '80'
}, 'Common::IPPortDefinition'),
'object_status' => bless({
'availability_status' => 'AVAILABILITY_STATUS_GREEN',
'status_description' => 'Pool member is available',
'enabled_status' => 'ENABLED_STATUS_ENABLED'
}, 'LocalLB::ObjectStatus')
}, 'LocalLB::PoolMember::MemberObjectStatus')
], 'LocalLB::PoolMember::MemberObjectStatus[]')
]
];
Я не мог понять, как это должно работать. Я попробовал несколько примеров из perldsc. Примеры в основном касаются ARRAYS OF HASHES. Но вышеупомянутый массив ...? Я даже не знаю, что это за массив. Может ли кто-нибудь указать мне в правильном направлении?
Так, например, как я получить доступ к "object_status"->"availability_status"
из "member"->"address"
Thx simbabque. Это выход я получаю от Data::Printer:
[
[0] [
[0] LocalLB::PoolMember::MemberObjectStatus[] {
public methods (0)
private methods (0)
internals: [
[0] LocalLB::PoolMember::MemberObjectStatus,
[1] LocalLB::PoolMember::MemberObjectStatus,
[2] LocalLB::PoolMember::MemberObjectStatus,
[3] LocalLB::PoolMember::MemberObjectStatus
]
}
]
]
Он выглядит как массив объектов типа «LocalLB :: PoolMember :: MemberObjectStatus []», который содержит массив объектов типа «LocalLB :: PoolMember :: MemberObjectStatus» – SparkeyG
Действительно, структуры данных, которые имеют «благословение» 'прикрепленные к ним при сбрасывании с помощью Data :: Dumper являются объектами. Если вы не знаете, какие методы у них есть, используйте [Data :: Printer] (http://p3rl.org/Data::Printer). Он расскажет вам все об объектах, включая наследование, значения и методы, которые он может сделать. Возможно, вам придется поиграть с параметрами, чтобы отобразить их на этом уровне глубины, но это тривиально. – simbabque
Я попытался понять, откуда взялись эти классы, и начал читать [источник BigIP :: iControl] (https://metacpan.org/source/LTP/BigIP-iControl-0.098/lib/BigIP/iControl.pm#L518). ** Осторожно, может быть, это NSFW! ** – simbabque