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 } = $2;
45 $hash->{ $section . $n } = $v;
47 } elsif ( $line =~ m/^-+$/ ) {
48 $section = $last_line . '_';
53 warn "## hash = ",dump $hash;
60 'show adsl port %s' => [],
61 'show adsl port %s line-config' => [],
62 'show adsl port %s physical-table' => [],
66 my ( $self, $row ) = @_;
67 # cleanup column names
68 foreach my $n ( grep { m/[:\s]/ } keys %$row ) {
69 my $v = delete $row->{$n};
71 $n =~ s/:$// && $v =~ s/\skbps$//; # special case