我知道这类话题已有很多问题,但据我所知(perl初学者,所以我可能错了),我没有使用数组,所以我不明白哪里这个输出来自
$VAR1 = {
'BridgeMode' => {
'Ten-GigabitEthernet1/0/5' => {
'Description' => 'poort1',
'Duplex' => 'F(a)',
'Interface' => 'Ten-GigabitEthernet1/0/5',
'Link' => 'UP',
'PVID' => '100',
'Speed' => '10G(a)',
'Type' => 'A',
'Vlan100' => {
'UntaggedPorts' => [
'Ten-GigabitEthernet1/0/5'
]
},
'vlanID' => [
'Vlan100'
]
},
以上是我的翻斗车的内容,这是我的打印声明:
my $untaggedInterface = $data{BridgeMode}{"Ten-GigabitEthernet1/0/5"}{Vlan100}{UntaggedPorts} ;
print "Untagged: $untaggedInterface \n" ;
我希望print语句可以打印" Ten-GigabitEthernet1 / 0/5"但相反它显示了这个:
Untagged: ARRAY(0x24a8ec0)
编辑 - 可能存在已标记且未标记的内容:
$VAR1 = {
'BridgeMode' => {
'Ten-GigabitEthernet1/0/12' => {
'Description' => 'poort5',
'Duplex' => 'F(a)',
'Interface' => 'Ten-GigabitEthernet1/0/12',
'Link' => 'UP',
'PVID' => '100',
'Speed' => '10G(a)',
'Type' => 'H',
'Vlan100' => {
'UntaggedPorts' => [
'Ten-GigabitEthernet1/0/12'
]
},
'Vlan107' => {
'TaggedPorts' => [
'Ten-GigabitEthernet1/0/12'
]
},
编辑:打印数组内容
my @untaggedInterface = $data{BridgeMode}{"Ten-GigabitEthernet1/0/5"}{Vlan100}{UntaggedPorts} ;
print join(", ", @untaggedInterface) ;
stil给出
ARRAY(0x1c03a68)
答案 0 :(得分:1)
如果你有以下内容,你会得到预期的结果,即字符串而不是字符串数组:
'UntaggedPorts' => 'Ten-GigabitEthernet1/0/12'
否则,您必须指定数组元素的索引:
my $untaggedInterface = $data{BridgeMode}{"Ten-GigabitEthernet1/0/5"}{Vlan100}{UntaggedPorts}[0];