Zu expect kann ich dir nicht direckt helfen aber warum verwendest du nicht "Net::Telnet"?
Hier ein Scriptchen von mir:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/perl
use strict;
use Net::Telnet;
my $passwort='12345'; #;-)
# Verbindung zum Router
my $host = new Net::Telnet(Timeout => 30, Prompt => '/^>/');
$host -> open("192.168.1.250");
# Auf Passoworteingabeauffordeung warten
my ($back,$match) = $host -> waitfor('/Passwort:/');
print $back.$match;
# Passwort übertragen
$host -> print("$passwort\n");
print "$passwort\n";
# Loginmeldungen überspringen
my $msg='';
($back,$match) = $host -> waitfor('/>/');
$msg=$back.$match;
($back,$match)= $host -> waitfor('/>/');
$msg.=$back.$match;
print $msg;
# Aktulle Internet-IP des Routers lesen
$host -> print("dir /Status/PPP-Statistik/Rx-Optionen/IPCP\n");
print "dir /Status/PPP-Statistik/Rx-Optionen/IPCP\n";
# IP
($back,$match) = $host -> waitfor('/>/');
print "3:\n---------------\n".$back."\n--------------\n$back\n";
# verbindung zum Router beenden
$host -> close();
print "exit\n";
exit(0);
\n\n
<!--EDIT|topeg|1157994641-->