open( OUT, ">/tmp/sftp-batch" ); print OUT <<"END"; cd foo ls END close( OUT ); chomp( my @files = `sftp -b /tmp/sftp-batch hostname` ); open(OUT, ">/tmp/sftp-batch-2" ); print OUT <<"END"; cd foo lcd bar END for my $file ( @files ) { print OUT "get $file\n"; } system( "sftp -b /tmp/sftp-batch-2 hostname" );