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: