Программа, позволяющая скачивать и сохранять файлы с удаленного сервера

#!/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, возвращающий массив и из него вытаскивается второй элемент, который является размером файла и затем выводится на печать.