| 
 | |
|  | 
   #!/usr/bin/perl
   use strict;
   use LWP::Simple;
   my $url="http://www.server.ru/mp3/";
   my $dir="/path/to/your/mp3/dir";
   grep {getfile("$url$1.mp3") 
         if m!<A HREF="(.*?)\.mp3">!i} 
         split /\n/ => get $url;
   sub getfile{
     print "$_[0]\t=\tbegin...\n";
     print @{[head $_[0]]}[1],"\n";
     my $res = LWP::UserAgent->new->request(new HTTP::Request GET=> $_[0]);
     $_[0]=~s!.*/!!;
     if ($res->is_success) {
       open (ABC, ">$dir/$_[0]") or die "Can't create $dir/$_[0]: $!";
       binmode(ABC);
       print ABC $res->content; close ABC or die $!;
     } else {
       print $res->status_line;
     }
     return 1;
   }
конструкция 
   grep {getfile("$url$1.mp3") 
         if m!<A HREF="(.*?)\.mp3">!i} 
         split /\n/ => get $url;
берет листинг директории(например без индексного файла) get $url, сплитит его по 
переводу каретки, возвращает массив, который в цикле перебирается и если
есть линк 
на *.mp3, то подпрограмме передается  адрес файла $url$1.mp3.
В строке print @{[head $_[0]]}[1],"\n"; берется
head, возвращающий массив и из 
него вытаскивается второй элемент, который является размером файла и затем
выводится на печать. 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |