use Net::FTP; use File::Temp qw(tempfile); #Creating my html in temporary file my $temp = new File::Temp( UNLINK => 1, SUFFIX => '.html' ); open (OUT, ">$temp") || (die "Can't open $temp\n"); binmode(OUT, ":utf8"); print OUT "My file content"; close (OUT); #uploading temporary html file to server my ($ftp, $host, $user, $pass, $dir); $host = "ftp.example.com"; $user = "myusername"; $pass = "hunter2"; $dir = "interpretbank.com/UserGlossary/"; $ftp = Net::FTP->new($host, Debug => 0); $ftp->login($user, $pass) || die $ftp->message; $ftp->cwd($dir); $ftp->put($temp) || die $ftp->message; $ftp->quit; print $ftp->message; #system("start file://$temp"); #just for check, open the temporary html file in local browser $temp->seek( 0, SEEK_END );