5 use Data::Dump qw(dump);
10 my $t = Net::Telnet->new( Timeout => 20, Port => 1123, Prompt => '/#/' );
12 $t->dump_log('/tmp/log') if $ENV{DEBUG};
17 $t->waitfor('/Login:/');
19 $t->waitfor('/Password:/');
29 my ( $self, $out ) = @_;
34 foreach my $line ( split(/[\n\r]+/, $out) ) {
36 if ( $line =~ m/^(\S+.*?)\s*:+\s+(\S+.*?)\s*$/ ) {
39 if ( $v =~ s/\s+(\S+)\s*:\s+(\S+.+)// ) {
41 my ($n2,$v2) = ($1,$2);
43 $hash->{ $section . $n2 } = $v2;
44 warn "## $n2 = $v2\n";
46 $hash->{ $section . $n } = $v;
48 } elsif ( $line =~ m/^-+$/ ) {
49 $section = $last_line . '_';
54 warn "## hash = ",dump $hash;
61 'show adsl port %s' => [],
62 'show adsl port %s line-config' => [],
63 'show adsl port %s physical-table' => [],
67 my ( $self, $row ) = @_;
68 # cleanup column names
69 foreach my $n ( grep { m/[:\s]/ } keys %$row ) {
70 my $v = delete $row->{$n};
72 $n =~ s/:$// && $v =~ s/\skbps$//; # special case