#!/usr/bin/perl -w use Net::Telnet; use strict; my ($connect,@lines,$lineid,$identifier); $connect = new Net::Telnet (Timeout => 10, Input_log => 'telnet.log',Host => 'myhost', Prompt => '/[#>].*$/'); $connect->waitfor('/password[: ]*$/i'); $connect->print("mypass"); $connect->cmd("term len 0"); $connect->getline; $connect->cmd(String => 'show ip bgp summary',Timeout => '10'); $connect->getline; $identifier = $connect->getline; $lineid = 0; while ($lineid != 11) { $connect->getline; $lineid++; } @lines = $connect->getlines(Timeout => '30'); my ($key,$neighbor,$version,$as,$msgrcvd,$msgsent,$tblver,$inq,$outq,$uptime,$state,%neighbors,$hold); for $key (@lines) { ($neighbor,$version,$as,$msgrcvd,$msgsent,$tblver,$inq,$outq,$uptime,$state) = split(/\s+/,$key); $neighbors{$neighbor} = [$as,$msgrcvd,$msgsent,$tblver,$inq,$outq,$uptime,$state]; } print "$identifier\n"; for $hold (keys %neighbors) { print "$hold: @{$neighbors{$hold}}\n"; } sleep('5'); $connect->close; # # # Snippet $lineid = 0; while ($lineid != '20') { $linedata = $connect->getline; push(@data,$linedata); next unless eof; $lineid++; }