perl判断和赋值问题,因为我没学过perl,但最近的项目要参考别人的perl代码,这句看不懂

2024-12-14 10:12:17
推荐回答(2个)
回答1:

1. my $chassisAsset = { "core:assetType" => "Chassis", };
这句定义了一个哈希引用$chassisAsset,键为 "core:assetType",值为"Chassis";
2. $chassisAsset->{'core:factoryinfo'}->{'core:serialNumber'} = $serialNumber if $serialNumber;
这句的意思是,如果$serialNumber是有效值的话,就赋值给$chassisAsset->{'core:factoryinfo'}->{'core:serialNumber'},其中$chassisAsset->{'core:factoryinfo'}也是一个哈希,'core:serialNumber'是它的键;
3. $chassisAsset->{'core:factoryinfo'}->{'core:make'} = "Cisco";
这句是将"Cisco"赋值给$chassisAsset->{'core:factoryinfo'}->{'core:make'},'core:make'与第二句的'core:serialNumber'是同一级别。

最后的结构应该是:
$chassisAsset = {
'core:assetType' => 'Chassis',
'core:factoryinfo' => {
'core:serialNumber' => $serialNumber,
'core:make' => 'Cisco',
},
}

回答2:

创建哈希结构, $chassisAsset = {
"core:assetType" => "Chassis",
'core:factoryinfo' => { 'core:make' => "Cisco",
'core:serialNumber' => $serialNumber
}
}
当 $serialNumber 不为空或undef或0 等非真 值 时,才有 'core:serialNumber' => $serialNumber 这个键值对