#!/usr/bin/perl use Expect; my %answers = ( 'Path for package: ' => '/foo/bar/quux', 'do you want Visual Basic support? ' => 'NO!', 'What is your nick? ' => 'shmem', 'Thank you' => '', ); my $exp = Expect->new(); $exp->spawn( 'perl', 'install.pl') or die; my $prompts = join('|', map {qr{\Q$_\E} } keys %answers); $exp->expect(120, -re => $prompts, sub { my $exp = shift; my $matched = $exp->match; my $answer = delete $answers{$matched}; $exp->send( $answer."\n"); $exp->exp_continue if keys %answers; } ); print "All done.\n";