【发布时间】:2021-02-05 01:55:33
【问题描述】:
这是有问题的 hashref 的 Dumper 的输出:
#!/usr/bin/perl
use Data::Dumper;
sub getUpgradeTaskUUIDS {
my $derp = SF::Transaction::Update::getUpgradeTasks();
print "Derp is:\n";
print Dumper $derp;
[... do stuff ...]
}
下面的 hashref 被另一个函数接收。 task_readiness 可能有元素,也可能没有。我设法以某种复杂的方式抓住了“目标”=> '_6f5c8c84-6251-11eb-8def-fd627969bf5f_52dcea68-60e9-11eb-830e-f71d7dc3a91f',但我想知道最干净、最简单的方法是什么?如果两者都有适用的元素,我还需要能够从 task_readiness 和 task_upgrade 中获取 target -> '' 值:
Derp is:
$VAR1 = {
'tasks_readiness' => [],
'tasks_upgrade' => [
{
'type' => 6,
'hidden' => 0,
'state_name' => '1',
'allow_html_in_msg' => 1,
'aq_id' => '0e43ed66-663e-11eb-a97b-b72c0f665ee4',
'subtype_name' => '',
'retry_type' => 1,
'safe_to_delete' => 1,
'create_time' => 1612370227,
'delay_run' => 1612370299,
'last_state_change' => 1612370287,
'description' => 'Apply Upgrade 7.0.0-1242 to Devices',
'subtype' => 14,
'group_name' => 'DEVICE_UPGRADE',
'name' => '',
'type_name' => '6',
'retries' => 0,
'state' => 1,
'target' => '_6f5c8c84-6251-11eb-8def-fd627969bf5f_52dcea68-60e9-11eb-830e-f71d7dc3a91f',
'domain' => 'e276abec-e0f2-11e3-8169-6d9ed49b625f',
'cost' => 10,
'pid' => 0,
'message' => '<p><strong>Failed to update 2 devices.<br></strong></p><p><strong>Please reapply policies to your managed devices.</strong></p>',
'user' => 'admin'
}
]
};
【问题讨论】:
-
“我设法以某种复杂的方式抓住了
"target" => '_6f5c-...-a91f'”。请edit您的帖子并包含“复杂方式”的代码。
标签: arrays perl hash-of-hashes