Войти

Показать полную графическую версию : perl allow_url_fopen = On


E-mail
11-07-2006, 21:12
Люди, подскажите, пожалуйста,

как короче всего с помощью перла можно вывести контент удаленной странички (с другого хоста)

я обычно если и писал на перлЕ то локально, ужасный, старый язык, но есть в нем и плюсы, но я не об том,
в php например для того чтобы require работал не только локально но и с удаленными хостами, достаточно в настройках php.ini поправить директиву allow_url_fopen = On (она таковая по умолчанию), а как сделать подобное в перле? или другие альтернативы...

на данный момент быстрее способа, кроме как делать запрос через сокеты, я себе не вижу на перле...

знатоки перла - ваш выход :D

mar
11-07-2006, 22:35
короче, поторяю кратко то, что было в аське :
- ссылка на lama book (http://www.helloworld.ru/texts/comp/lang/perl/perllama/index.html)
- а вот ссылка на работу с lwp (http://www.helloworld.ru/texts/comp/lang/perl/perllama/g19.html#g1910)
и обещаный код (написанный очень давно, так что не взыщите :)) (лишнее вырезать не буду, уберу только адреса. Там в цикле при чтении поступающего идет обработка содержимого)

#!/usr/local/bin/perl5
use IO::Socket;

#$informer="informer";
$informer="каталог_куда_пишем";
$doc="/types/info.js?value=26063&type=1_1";
$remote = IO::Socket::INET->new (Proto=> "tcp",
PeerAddr => "адрес",
PeerPort => "порт",
) or die "cannot connect to http port";
print $remote "GET $doc HTTP/1.0\n\n";
$m="";
$start=0;
open(QQ, ">$informer")|| die("cannot print to data's file $fname");
while (<$remote>)
{
if($_ eq "\n") {$start=1;}
if($start==1) {#chomp(); #$m=$_;}
$m=$_;
## тут меняем все и вся

print QQ $m || die("cannot write to file $fname");
}#fi
}
close (QQ);
close $remote;
#print "<\/body><\/html>";




© OSzone.net 2001-2012