Forum Webscript.Ru

Программирование => Perl => Тема начата: от 14 Февраля 2002, 13:32:51

Название: Несколько вопросов по Perl
Отправлено: от 14 Февраля 2002, 13:32:51
1)
Как из массива состоящего из цифр (н-р:
1, 5, 10, 51, 7)
Выбрать произвольным образом какое-нибуль число. Как задать вероятность в процентах того, что выпадет именно это число?
2)
У меня есть массив, в него записан файл, н-р:
log|5|kdgshg
gs|10|kdjhfs
qq|1|kdsfa
yg|11|fdvgdf
jsh|72|dg

Как его преобразовать, так чтобы он по второму параметру выстроялся по возростанию?

3)
Вопрос по сокетам:
Вот простой код коннекта:

#!/usr/local/bin/perl
use Socket;
$AF_INET=2;
$SOCK_STREAM=1;
$protocol=(getprotobyname(\'tcp\'))[2];
$end="\\015\\012";
$site="nlib.narod.ru/";# Адрес хоста без http://
$port=80;
$addr=(gethostbyname($site))[4];
$addrs=pack (\'S n a4 x8\', $AF_INET, $port, $addr);
$cur=\'parts/violino.html\';#имя файла на хосте Например /cgi-bin/cookie.cgi


{print "Content-Type: text/html\\n\\n";

if (!(socket(LOAD,$AF_INET,SOCK_STREAM,$protocol))){

print "Невозможно создать сокет!"; exit;}

if (!(connect(LOAD, $addrs))){print "Невозможно соединиться!"; exit;}

select(LOAD);
$|=1;
select(STDOUT);

print LOAD "GET $cur HTTP/1.0$end";
print LOAD "Content-Type: application/x-www-form-urlencoded$end";
print LOAD "Accept: text/html$end";
print LOAD "Accept: image/jpeg$end";
print LOAD "User-Agent: Mozilla/8.0 (Сам ты юзер!;I 8.0; Windows 98; DigExt)$end";
print LOAD "Accept: image/gif$end";
print LOAD "Accept: image/x-xbitmap$end";
print LOAD "Referer: http://www.hvost.kz/$end";
print LOAD "Accept: image/pjpeg$end";
print LOAD "Cookie: nik=uuu; passwd=e789201b865999990c17bf5bc9c15$end";
print LOAD "Host: $site$end";
print LOAD "Authorization: Basic $encoded$end";
print LOAD "$end$end";
@body=;


print @body;

close (LOAD);
}

Но коннект происходит не совсеми сайтами (в примере сайт не грузиться). Говорит, что коннект закрыт...
Как исправить это дело?
Пока все. Буду рад вашей помощи, особенно, если она будет разжеванна на нет. А то порой короткое объяснение еше больше запутывает...
Название: Несколько вопросов по Perl
Отправлено: Chs от 14 Февраля 2002, 13:55:42
1) perldoc -f rand
2) @a = sort {(split(/\\|/,$a))[1] <=> (split(/\\|/,$b))[1] } @a;
Название: Несколько вопросов по Perl
Отправлено: NAS от 14 Февраля 2002, 15:53:03
Цитировать
3)


А там наверняка закрыто. Народ не любит, когда у него контент напрямую берут.
Название: Несколько вопросов по Perl
Отправлено: от 15 Февраля 2002, 08:45:46
Но через LWP все проходит наилучшим образом! Но я этом модуле я не знаю как подменить переменные окружения... :(
Название: Несколько вопросов по Perl
Отправлено: Chs от 15 Февраля 2002, 09:21:40
perldoc lwpcook
Название: Несколько вопросов по Perl
Отправлено: от 15 Февраля 2002, 11:30:41
Это не совсем то.
Куки добавить в заголовок я могу.
Но как например изменить юзера-агента?
Название: Несколько вопросов по Perl
Отправлено: Chs от 15 Февраля 2002, 11:49:52
Там это написано, англицким по бэкграунду - читайте внимательнее.
Название: гы
Отправлено: Green Kakadu от 15 Февраля 2002, 14:24:00
Цитировать
Куки добавить в заголовок я могу.

cook - это в данном случае не cookies, а рецепты советы.
lwpcook - советы, решения по lwp
Название: Несколько вопросов по Perl
Отправлено: soda от 04 Ноября 2005, 12:55:17
а никто не подскажет как в данном коде реализовать таймаут, если к примеру прокси умерла?