use Fcntl qw(:seek); ... print while <$file>; # hiernach ist $file am ende angelangt seek $file, 0, SEEK_SET; # springe wieder an den anfang $ftp->put($file, ...);