Прежде всего, позвольте мне помочь вам помочь:
- Для помощи с Perl проверьте perldoc .
- Для помощи с модулями Perl, проверьте CPAN .
Вы работаете с модулем Expect, который находится по адресу CPAN: Expect .
Из строго синтаксической точкивсе, что вы делаете, это вызываете два метода:
my $exp = Expect->new(); #Yes, the new Expect is a shorthand version
$exp->spawn("su");
Оба метода документированы в CPAN, и они действительно делают то, что вы ожидаете (без каламбура)) что им делать: первый создает объект Expect, второй порождает процесс su без каких-либо параметров.
Теперь вы, вероятно, можете использовать методы отправки и ожидания для отправки строки процессу или подождать, пока он запросит ввод.Прямо из примера CPAN:
# send some string there:
$exp->send("string\n");
# then do some pattern matching with either the simple interface
$patidx = $exp->expect($timeout, @match_patterns);