Как я могу прочитать содержимое файла напрямую с помощью Perl Net :: FTP? - PullRequest
2 голосов
/ 13 мая 2010

Я хочу получить файл с одного хоста на другой хост. Мы можем получить файл, используя модуль NET :: FTP . В этом модуле мы можем использовать метод get для получения файла. Но я хочу содержимое файла вместо файла. Я знаю, что с помощью метода read мы можем прочитать содержимое файла. Но как мне вызвать функцию read и как получить содержимое файла?

Ответы [ 2 ]

6 голосов
/ 13 мая 2010

Из документации Net::FTP:

get ( REMOTE_FILE [, LOCAL_FILE [, WHERE]] )

Get REMOTE_FILE from the server and store locally. LOCAL_FILE may be a filename or a filehandle.

Так что просто сохраните файл непосредственно в переменной, прикрепленной к дескриптору файла.

use Net::FTP ();

my $ftp = Net::FTP->new('ftp.kde.org', Debug => 0)
  or die "Cannot connect to some.host.name: $@";

$ftp->login('anonymous', '-anonymous@')
  or die 'Cannot login ', $ftp->message;

$ftp->cwd('/pub/kde')
  or die 'Cannot change working directory ', $ftp->message;

my ($remote_file_content, $remote_file_handle);
open($remote_file_handle, '>', \$remote_file_content);

$ftp->get('README', $remote_file_handle)
  or die "get failed ", $ftp->message;

$ftp->quit;

print $remote_file_content;
0 голосов
/ 13 мая 2010

USE File :: Remote для прозрачного чтения / записи / редактирования удаленных файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...