туплю... но как проверить валидность URL на Perle?
2464
8
На PHP, наверно, и
$fp = @fopen ($URL, "r"); if (!$fp) { die ("Cannot open website $URL!"); }
проканает... а на Перле?... и желательно без необходимости установки навороченного модуля... или просто чтоб модуль поместить в подкаталог lib и работало.... кто поможет? :-)
PerS
На перле тоже проканает...
craxx
Дык, не канает :-)

#!/usr/bin/perl
print "Content-type: text/html\n\n";
$url="ЗдесьПишемУрлу";
$r=open FILE,"$url";
if ($r) { print "OK"; }
else { print "Can not open $url!"; }

дает "Can not open... " для любого адреса....

не могу же я, как на Сишке написать с fopen - она разве есть в Перле? :-) попробовал

#!/usr/bin/perl

$url="ЗдесьПишемУРЛу";
print "Content-type: text/html\n\n";

use IO::File;
$fh = new IO::File;
if ($fh->open("< $url")) {
print ;
$fh->close;
}
else {
print "Can not open $url!";
}

тож не канает... киньте кто-нибудь работающий пример плз...
PerS
тебе с пользованием библиотекой lwp подойдет?
приду домой поищу в старых своих кодах
PerS
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");
# Create a request
my $req = HTTP::Request->new(Get => 'http://ngs.ru');
my $res = $ua->request($req);
if ($res->is_success) {
print "ok! \n";
}
else {
print "[censored]! \n";
}
Спасибо за ответ, только вот ничего, кроме самого файла со скриптом, не OK, все остальные УРЛы censored :-(
LWP установлен, проверено. ActivePerl 5.6.1 на WinXPSP2. Проверил также на Apache/1.3.28 (Unix) с Перлом 5.76 - там упорно выдает Internal error 500, хотя модуль тож есть...

Мож в самом Useragent.pm че-нить ковырнуть, таймаут какой-нибудь? :-)
PerS
Ковырять не надо!
Вот: $ua->timeout(10);
Должно помочь.
Ты будешь смеяться - не помогло :-( Разница в том, что теперь и на собственный URL тоже [censored] :-(
PerS
А пробовал таймаут ставить побольше?
Хотя 10 сек. итак немало.
А ты уверен что твоя прога может в инет ходить? Может у тебя прокси используется или фаервол?Посмотри какой-нибудь программулиной уходят ли от нее пакеты.