BladeSystem Forums have moved here
To make BladeSystem information easier to find, we have moved the BladeSystem forums here, to Servers and Operating Systems.
Showing results for 
Search instead for 
Do you mean 

Perl and Net::Telnet

SOLVED
Go to Solution
Highlighted

Perl and Net::Telnet

I have written the following script to access one of my cisco 3524
swithes:

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 1, Errmode=>'die');
$t->open("sbr-3524-1.conpap.com");
$t->waitfor('/Password\:\s/i');
$t->print("xxxxxxx");
$t->waitfor('/SBR-3524-1\>/i');
@lines = $t->cmd("who");
print @lines;
$t->close();

The script times out at the following line:

@lines = $t->cmd("who");

I get a "command timed-out at U:\PerlScripts\test2.pl line 7"

If i comment out the above line the script executes, I believe the
waitfor line works fine, my actual prompt is SBR-3524-1>

$t->waitfor('/SBR-3524-1\>/i');

I have staired at this for hours, any help is appreciated. What am I
doing wrong.

Thanks.
1 REPLY
Acclaimed Contributor

Re: Perl and Net::Telnet

Hi Jeff:

I'm going to give you the most valuable Perl lesson I know: add the -w to generate warnings and use strict:

viz:

#!/usr/bin/perl -w

use strict;

use Net::Telnet ();
my $t = new Net::Telnet (Timeout => 5, Errmode=>'die');
$t->open("sbr-3524-1.conpap.com");
$t->waitfor('/Password\: /i');
$t->print("xxxxxxx");
$t->waitfor('/SBR-3524-1\>/i');
my @lines = $t->cmd("help");
print "Lines: ",@lines,"\n";
$t->close();

Note that with -w you will see that your \s is not a recognized pattern. I changed your "who" to "help" because the "who" command is not recoginized on a Catalyst 5500 although I assume "who" is a valid command on a 3524.

If it ain't broke, I can fix that.