If you look into the
get routine in FTP.pm, you'll see that it's reading a buffer, then writing it to the passed-in filehandle. If you just want to hack on it, make your own copy and save the buffer in the *ftp object and return that. Or, to be closer to "production", inherit FTP into a wrapper object and override get().
In the end, it's probably easier to write to a temporary file and parse that. The time to write and read the local file will almost certainly be a tiny fraction of the ftp connect and transmit time.
(
update) If you really want to get into it, you could look at
Net::FTPServer.  That lets you write your own site commands.  You could do "
SITE PARSE filename" and let the server parse the file and send back a 200 response with the needed data.  Now,
that would
be an efficiency!
 
p