my ($user,$pass,$host,$in,$out,$err)=('eurotuxftpprod','KujRemebeuj0',"$ARGV[0]","","",""); use IPC::Run qw( start pump finish timeout ); my @cmd=('lftp', '-u', "$user,$pass", '-e', "open", "$host"); my $h = start \@cmd, \$in, \$out, \$err, timeout( 5 ); $in .= "cls -1\n"; pump $h until $out || $err; # =~ /input/ ; print $out; $out = '' ; $in .= "ls\n"; pump $h until $out || $err; # =~ /input/ ; print $out; $out = '' ; $in .= "mget *\n"; pump $h until $out || $err; # =~ /input/ ; print $out; print $err; finish $h;