これは私の問題です。私は Perl の知識があまりなく、この機能を修正する必要があります。
この関数deviceModelMenu()が呼び出されると、CLI は次のテキストを表示します。
以下のモデルが利用可能です ================================================== 1. 2.Cisco1240 3. 触媒3750 4. 触媒3650 5. HP2524
最初の項目が空で、これは間違っています。これを修正する必要があります。このメニューを表示するコードは次のとおりです。
my $features = shift;
print "=" x 50, "\n";
print "The following models are available\n";
print "=" x 50, "\n";
my $i=1;
foreach (keys %{$features->{features}[0]->{deviceModel}})
{
print "$i. $_ \n";
$i++;
}
次の行を追加すると:
warn Dumper($features->{features}[0]->{deviceModel});
これをダンプします:
$VAR1 = {
'デバイスモデル' => {
'' => {
'cfg' => []
}、
'Cisco1240' => {
'cfg' => [
「cisco1240feature.cfg」
]
}、
'Catalyst3750' => {
'cfg' => [
「catalyst3750feature.cfg」
]
}、
'Catalyst3650' => {
'cfg' => [
「catalyst3650feature.cfg」
]
}、
'HP2524' => {
'cfg' => [
「hp2524feature.cfg」
]
}
}
};
お気づきかもしれませんが、最初の項目は実際には空です。次の行を追加してスキップし、残りの情報を出力するだけです。
if ($_ eq '') {
shift;
}
しかし、そうではないようです仕事私がしたいことをしてください。項目が空の場合はスキップしたい。