in reply to FTP transfer progress

You won't be able to access progress data by using the put() method, since that's a one-shot method. What you need to do is emulate what put() does. You can do that by using the stor() method, and using the write() method on the resulting Net::FTP::dataconn object.

I don't have a complete solution for you, but the following should get you started:

# advertise that we want to store a file. # $filename should probably not contain a path my $conn = $ftp->stor( $filename ); # open the local file if( open my $fh, $filename ) { my $buf; while(my $read_bytes = read($fh, $buf, 1024) > 0) { $conn->write($buf, $read_bytes); # add your progressbar update here } }