我知道这个问题已经有很多问题,但据我所知(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) ;
风格给出
ARRAY(0x1c03a68)
如果你有以下内容,你会得到预期的结果,即字符串而不是字符串数组:
'UntaggedPorts' => 'Ten-GigabitEthernet1/0/12'
否则,您必须指定数组元素的索引:
my $untaggedInterface = $data{BridgeMode}{"Ten-GigabitEthernet1/0/5"}{Vlan100}{UntaggedPorts}[0];