Язык программирования Perl

Передача файлов


Во Всемирной сети Интернет насчитывается огромное количество файловых серверов, где хранятся архивы программ, документация и другая информация. FTP (File Transfer Protocol) - это протокол, специально созданный для передачи файлов. Обмен файлами остается одной из постоянных задач сетевого программирования, которая легко решается средствами языка Perl. В поставке Perl имеется стандартный модуль Net::FTP, реализующий FTP-клиента, который позволяет весьма просто организовать обмен файлами с сервером по протоколу FTP - например, автоматизировать автоматическое обновление нужных файлов с сервера. Далее приводится программа, которая с помощью команд FTP загружает с сервера файл, если он имеет более позднее время изменения, чем его локальная копия:

use Net::FTP; # используем модуль работы с FTP my $server = 'ftp.server.org'; # имя или адрес сервера my $file = 'file.name'; # имя файла

my $ftp = Net::FTP->new($server) # соединяемся с сервером or die "Ошибка соединения с $server:$@"; $ftp->login('ftp','ftp') # указываем имя и пароль or die " Ошибка регистрации:", $ftp->message; $ftp->cwd("/pub") # переходим в каталог or die "Ошибка смены каталога:", $ftp->message; my $time_ftp = $ftp->mdtm($file) # время изменения на сервере or die; my $time_old = (stat($file))[9]; # время создания копии

if ($time_ftp > $time_old) { # если файл на сервере новее, $ftp->binary; # то в двоичном режиме $ftp->get($file) # загружаем файл or die "Ошибка загрузки: ", $ftp->message; utime($time_ftp, $time_ftp, $file); # и меняем время файла } $ftp->quit; # заканчиваем сеанс связи

Поскольку в классе Net::FTP реализованы остальные команды протокола FTP, с его помощью можно разрабатывать гораздо более сложные программы файлового обмена. Кроме этого класса, в архивах CPAN можно найти много других модулей для обмена файлами с FTP-серверами.



Содержание раздела