use File::Tail; my $logfile = '/tmp/install.zsh.log'; my $child = open my $install_zsh, "| /bin/zsh $HOME/env/$ENV{DEST_SCRIPT_HOST}/db_silent_install/11gR2-11.2.0.1.0/install.zsh >$logfile"; # Sleep to give the logfile time to fill sleep 5; my $timeout = time + 60; my $log = File::Tail->new($logfile); while (defined($line=$log->read)) { print "$line"; if( $line =~ /root user/ ) { print "Running magic helper commands as root\n"; system("sudo ...") == 0 or die "$?"; print "Sending ENTER to install script\n"; print $child "\n"; }; }