use Net::FTP; use IO::Callback; my $BytesPerHash = 2048; my $HashHandle = IO::Callback->new('>', sub { # activity code # called every $BytesPerHash } ); my $ftp = Net::FTP->new($host, Timeout => $Timeout); $ftp->hash($HashHandle, $BytesPerHash); $ftp->login($Username, $Password); $ftp->binary; $ftp->put($localFile, $remoteFile); [...]