出力が特定の単語で始まり、特定の単語/文字で終わる場所から詳細を取得しようとしている配列にいくつかの出力があります。この出力は、画面に出力されます。
私が扱っている配列の出力は次のとおりです。
router rip
version 2
redistribute bgp 45134 metric 3
passive-interface Serial1/3:1.333
passive-interface Serial3/1:3.333
passive-interface Serial3/1:5.333
passive-interface Serial3/2:1.333
passive-interface Serial3/4:1.333
passive-interface Serial3/4:17.333
passive-interface Serial6/1:1.333
no auto-summary
!
address-family ipv4 vrf TestVRF-0001
redistribute bgp 45134 metric 3
network 10.0.0.0
no auto-summary
version 2
exit-address-family
!
これまでに生成した perl コードは次のとおりです。
elsif ( $action eq "show_vrf1" ) {
my $cmd = "show run | begin router rip";
my @lines = $s->cmd(String => $cmd,
Prompt => "/$enableprompt/",
Timeout => 10);
foreach my $line (@lines) {
if(/address-family ipv4 vrf TestVRF-0001.*?!/){
$result=$1;
print $result;
}
}
}
私は配列から以下のものだけを引き出したいと思っています:
address-family ipv4 vrf TestVRF-0001
redistribute bgp 45134 metric 3
network 10.0.0.0
no auto-summary
version 2
exit-address-family
!
何らかの理由で、スクリプトを実行すると、配列からデータが取り出されない空白の画面が表示されます。