Я ввожу он пишет,что ненайден. Мне он нужен для работы скрипта. Скрипт чекает майлы на валидность (mailass) А быз данного модуля отказывается работать.
Не пойму в чем проблема, модуль можно установить даже через GUI. Пуск > ActivePerl > Perl Package Manager, выбираешь в общем списке нужный модуль и устанавливаешь. Ну или как вариант через CPAN (в консоли): cpan; install Mail:OP3Client
Есть диапазон страниц, нужно считать контент каждой и закинуть данные в файлик. Есть функция для считывания и скидывания контента. Как реализовать многопоточность, чтобы скрипт сам делил между потоками диапазон страниц и затем обрабатывал их? Мануалы почитал, но толком не разобрался.
Code: #!/usr/bin/perl use threads; use threads::shared; my $num : shared; #расшариваем переменную $thr = 2; for(0..$thr) { $trl[$_] = threads->create(\&get); } for(0..$thr) { $trl[$_]->join; } sub get { while (1) { { lock($num); #блокируем переменную перед увеличением значения $num++; } print "$num\n"; #ну и тут собственно делать запрос } } залил ман про нити в перл, там есть про расшаривание данных http://slil.ru/25284163
оно само будет делится между потоками, каждый поток будет делать +1 к номеру страницы, $thr = 2; - количество потоков вот в качестве примера простенький парсер имен файлов на слил.ру Code: #!/usr/bin/perl use threads; use threads::shared; use LWP::Simple; my $num : shared; $thr = 2; $num = 25284163; for(0..$thr) { $trl[$_] = threads->create(\&gets); } for(0..$thr) { $trl[$_]->join; } sub gets { while (1) { { lock($num); $num++; } $cont = get("http://slil.ru/$num"); ($content) = $cont =~ /href="\/.+\/.+\/(.+)"/; print $content."\n"; } }
Вопрос: Допустим, у меня в текстовой переменной - имя класса. Как обратиться к самому классу по этой переменной?
Есть код Code: use strict; use HTTP::Request::Common; use LWP::UserAgent; use HTTP::Cookies; ............................... my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new('GET', 'https://mysite.com'); my $res2 = $ua->request($req); $res2 = $res2->as_string; Перл пишет в ответ 500 Can't locate object method "new" via package "LWP:rotocol::https::Socket" Пытаюсь поставить OpenSSL, пишет Can't use string ("SSL.pm") as a HASH ref while "strict refs" in use at C:/Perl/ lib/ExtUtils/Install.pm line 996. Что делать?
вот чекер прокси sub testProxy { $env="http://nntime.com/textenv.pl"; #$env="http://samair.ru/cgi/textenv.pl" $s=getPage($env,"http://".$_[0]); ($adr,$port)=split(/:/,$_[0]); if($s!~/REMOTE_ADDR=$adr/) {return 0}; #bad or transparent proxy if($s=~/HTTP_VIA/) {return 0;} #anonymous or transparent proxy if($s=~/HTTP_X_FORWARDED_FOR/) {return 0;} #anonymous or transparent proxy return 1; #eleet proxy } sub getPage { use LWP::UserAgent; $ua=LWP::UserAgent->new; #$ua->proxy(http=>$_[1]); $ua->timeout(10); $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); $req=HTTP::Request->new(GET=>$_[0]); $res=$ua->request($req); if($res->is_success) { #print($res->content); return $res->content; } else { #print "Error!\n"; } } sub getPage а мне нужно что б он чекел соксы 4 и 5 и https и разбрасывал по отдельным файлам все что начекал да еще и многопоточный был как я могу это сотворить еси можно плизз готовое решение я не силен в перле только регулярки написать могу и больше ничего
Ночи доброй! Думаю что перл =/ Но не уверен. Сам перл полностью не знаю. Не усовершенствуете скриптик, до того что бы определённому нику не слалось "/ctcp" Code: massctcp { var %i = 1 while (%i <= $nick(#,0)) { set %nick $nick(#,%i) /timer $+ %i 1 %i /ctcp %nick /msg $me version unset %nick inc %i } } }
Это не перл... Это скорее скриптовый язык какой-нибудь проги, наверное Mirc... В Mirc скриптах разбираюсь очень-очень плохо... Но думаю (наподобии Си), что нужно условие добавить в цикл: Code: if (%niсk = нужный ник) { вот тут надо написать что не надо слать } Лучше-бы в тему языка Си запостил... Что-то схожее у Mirc скриптов с ним есть... while есть, это цикл...