Net::Telnet configure VLAN



examples/telnet/configure_vlan.pl
#!/usr/bin/perl
use strict;
use warnings;

use Net::Telnet;

open my $out, ">>", "out.log" or die $!;
my $t = Net::Telnet->new(
        Timeout    => 2,
        #Prompt     => '/>/',
        input_log  => "input.log",
);

$t->open("172.30.40.146");

$t->waitfor('/User:.*$/');
$t->print("admin");

$t->waitfor('/Password:/');
$t->print("");

$t->waitfor('/>/');
$t->prompt('/\(Switching\) >/');
my @lines = $t->cmd("show vlan 5");


if (grep /VLAN ID: 5/, @lines) {
    print "VLAN is already configured\n";
    print "Please remove it manually and rerun the program\n";
    exit;
    #$t->cmd("logout");
}

$t->print("enable");
$t->waitfor('/Password:/');
$t->prompt('/\(Switching\) #/');
$t->print("");

$t->prompt('/\(Switching\) \(Vlan\) #/');
@lines = $t->cmd("vlan database");
@lines = $t->cmd("vlan 5");
#print @lines;
#if (grep /VLAN already/, @lines) {
#   print "QQ 1\n";
#}
@lines = $t->cmd("vlan 5000");
#print @lines;

@lines = $t->cmd("vlan 5");
#print @lines;
#if (grep /VLAN already/, @lines) {
#   print "QQ 2\n";
#}

#@lines = $t->cmd("no vlan 5");
$t->prompt('/\(Switching\) #/');
$t->cmd("exit");



$t->prompt('/--More-- or \(q\)uit/');
@lines = $t->cmd("show ?");

$t->output_record_separator("");
push @lines, $t->cmd(" ");


$t->prompt('/\(Switching\) #show/');
push @lines, $t->cmd(" ");
#print @lines;

$t->output_record_separator("\n");
$t->prompt('/\(Switching\) #/');
@lines = $t->cmd(" vlan 5");  # show was left on the promt line !
#print @lines;

@lines = $t->cmd("show vlan 7");
#print @lines;

@lines = $t->cmd("show slot");
#print @lines;
print $out @lines;



$t->prompt('/\(Switching\) \(Vlan\) #/');
@lines = $t->cmd("vlan database");
@lines = $t->cmd("no vlan 5");
$t->prompt('/\(Switching\) #/');


$t->cmd("exit");
print "done: $_\n";
print $out "done: $_\n";