Вот фрагмент моего сценария, который будет ждать строки «имя пользователя:» и распечатать имя пользователя для входа в систему, а огромная часть загрузочного сообщения печатается до появления «username:», иногда скрипт отсутствует, чтобы найти его и возвращая слово «Не удалось найти имя пользователя:», особенно когда некоторые пропущенные сообщения о загрузке печатаются после строки «username:», так что есть ли более надежный способ сделать это? Благодарю.Надежная альтернатива waitfor() в Perl
my %words = (
username => 'user1',
username_string => 'username: $',
);
($prematch, $match) = $obj->{comm}->waitfor(Match => "/$words{username_string}/",Errmode => "return");
if (!defined $match) {
print "Failed to find username:";
return;
}
else {
$obj->{comm}->print($words{username});
}
$ OBJ является объектом Net :: Telnet
waitfor(), очевидно, метод для некоторого класса. Помочь вам было бы легче, если бы мы знали, какой класс был ... – tjd
Похоже, он исходит из ['Net :: Telnet'] (https://metacpan.org/pod/Net::Telnet) – Zaid
да, извините, он исходит из NET :: Telnet, я все еще понимаю скрипт, который я обновляю. – rodee