I have been unable to replicate your problem -- your code works fine for me (with all the CGI stuff cleaned out, anyhow). Are you sure the original file isn't empty? Is that file uploaded to the CGI, which then sends it on? If so, perhaps there's a bug elsewhere in your program. Note that I'm assuming it's a cgi because of the calls to param(). I can see that you're also new to perl, and probably came from C. Allow me to suggest that string handling doesn't need to be as complex as you make it out to be. Compare
my $localfile = sprintf("%s/%s", $params->get("Path.From"), $params->get("File"));

to
my $localfile = params->get("Path.From") . '/' . $params->get("File");

You also are using more than one variable with the same name, which can be confusing. I suggest you examine your usage of @hosts and $hosts in your program. Without the cleanup I did to make it not require CGI, I doubt your program would do what you'd expect it to. Below are some more comments..
I hope this helps.

In reply to Re: NET::FTP replaces characters in file with NULL by Improv
in thread NET::FTP replaces characters in file with NULL by mnlight

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.