[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: пара отвлеченных вопросов, офтопик



Dmitry E. Oboukhov -> debian-russian@lists.debian.org  @ Mon, 19 Jun 2006 12:23:12 +0400:

 >> IO::Socket::INET гораздо проще в работе.
 >> 
 >> В Птн, 16/06/2006 в 20:46 +0300, Sergey Brutsky пишет:
 >> > можно как-то научить print'ы писать в сокет?
 >> > 
 >> > !/usr/bin/perl -W
 >> > 
 >> > use Socket;
 >> > 
 >> > socket(Socket_Handle, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 >> > connect(Socket_Handle, sockaddr_in( 80, inet_aton("213.180.204.8")));
 >> > select Socket_Handle; $| = 1;
 >> > print Socket_Handle "GET / HTTP1/.0\n\n";
 >> > print STDOUT <Socket_Handle>;
 >> > close(Socket_Handle);
 DEO> тут проблема: пишется некий скрипт для системы где стоит Perl5.0,
 DEO> в котором много чего нет. в частности use warnings, не говоря уж о
 DEO> библиотеках.

С библиотеками как раз проще.

 DEO> например на строку:
 DEO> connect($socket, sockaddr_in(80, inet_aton("127.0.0.1")));
 DEO> тот перл ругается так:

 DEO> Bad symbol for filehandle at /path/to...

 DEO> ===
 DEO> use Socket;
 DEO> my $socket;
 DEO> socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 DEO> connect($socket, sockaddr_in(80, inet_aton("127.0.0.1")));
 DEO> ===

 DEO> хотя этот код работает в perl 5.8

 DEO> я жду, мне обещали shell на ту машинку, там и разберемся.
 DEO> варианты проапгрейдить перл не подходят, потому что там стоит BSD, а у
 DEO> нее как обычно с обновлениями траблы и они на это не пойдут :(

Тогда забудь про возможность подсовывать неопределенные переменные в
вызовы socket, open и т.п.  Вышеприведенный вариант, где используется
bareword Socket_Handle, скорее всего, работать будет.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
	Игус в <Pine.LNX.4.44.0401231840020.15582-100000@moon>



Reply to: