Re: пара отвлеченных в опросов, офтопик
> >> DEO> поясни мне тогда пожалуйста :) > >> > >> Возьми книжку по перлу, хотя бы свою, по 5.6, и прочти там, что такое > >> glob (не функция, а внутренняя перловая конструкция). Да, книжка, > >> видимо, должна быть вполне конкретная - Programming Perl. Кукбуки > >> обычно этого не описывают. > DEO> дык взял почитал > DEO> никакого, нет не так > DEO> НИКАКОГО отношения глобы к файлам не имеют. > DEO> то что их так применяют - дело десятое > DEO> глоб - это лишь "ссылка на все с данным именем" (ц) Л. Уолл > > Ну да. На все. Каковых 4 то ли 5 различных видов возможно. Скаляр, > массив, хэш, файлхендл, функция. Кажется. он и пишет про то что глобы используются при экспорте имен из одного пространства имен в другое. впрочем мы отвлеклись от проблемы. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> DEO> поясни мне тогда пожалуйста :) > > Возьми книжку по перлу, хотя бы свою, по 5.6, и прочти там, что такое > glob (не функция, а внутренняя перловая конструкция). Да, книжка, > видимо, должна быть вполне конкретная - Programming Perl. Кукбуки > обычно этого не описывают. дык взял почитал никакого, нет не так НИКАКОГО отношения глобы к файлам не имеют. то что их так применяют - дело десятое глоб - это лишь "ссылка на все с данным именем" (ц) Л. Уолл -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> Ты путаешь определенность глоба как такового и заполнение его > файлхендлового гнезда. а не ты путаешь файлхендлы с глобами? насколько я понимаю глобы отнюдь не для файлхендлов задуманы :) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> Ты путаешь определенность глоба как такового и заполнение его > файлхендлового гнезда. поясни мне тогда пожалуйста :) > > DEO> у меня книжка по 5.6 (насколько помню) > DEO> там написано что если передавать простой скаляр, то он становится > DEO> объектом, "самооживляется" в их терминологии. закрывает файлы по выходе > DEO> из области видимости итп > > А в 5.0.005 этого еще нет. Ы? ну выше ж приводил - матюкается он на это. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> >> DEO> тогда пойдем от слова "неопределенный" > >> > >> DEO> что в первом что во втором варианте именно вызываемая функция делает > >> DEO> хендл определенным, определяет его. > >> DEO> :) > >> > >> Хендл - допустим. А вот переменную она делает определенной только во > >> втором случае. В первом случае глоб делает определенным упоминание его > >> в коде. > DEO> ты опять назовешь меня ламером но про второй случай я не понял. > DEO> о каком глобе может идти речь _до_ вызова функции? > > О глобе FILE. Когда именно он будет создан - на стадии компиляции > (perl, видя в этом месте bareword, уже в курсе, что имеется в виду глоб) > или непосредственно перед вызовом функции, я не скажу, но что до вызова > - факт. а вот это легко проверяется. я выше приводил текст про ошибки он ругается именно на стадии выполнения (если используем глобы). и ошибки навроде print FILEE "бла-бла"; (предполагается что FILE неверно написан) тоже только на этапе работы выясняются, а не на этапе компиляции. (собственно об этом и речь была выше), так что представляется крайне сомнительным что что-то там такое определяется на этапе компиляции :D > Заполнено его файлхендловое гнездо будет, да, уже внутри. > > Собственно, в open, print и т.п. можно передавать ссылку на глоб. > Которую можно присвоить переменной. Что-то типа > > my $handle = \*FILE; open($handle, ...); > > Этот фокус в 5.0 работал. Во всяком случае, в 5.0.005. у меня книжка по 5.6 (насколько помню) там написано что если передавать простой скаляр, то он становится объектом, "самооживляется" в их терминологии. закрывает файлы по выходе из области видимости итп -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> >> Так мне его проверить негде. А разница между версиями - материя тонкая, > >> я тебе набросаю, а ты опять придешь, скажешь "не работает". А я твое > >> письмо читай... > > DEO> тогда пойдем от слова "неопределенный" > > DEO> что в первом что во втором варианте именно вызываемая функция делает > DEO> хендл определенным, определяет его. > DEO> :) > > Хендл - допустим. А вот переменную она делает определенной только во > втором случае. В первом случае глоб делает определенным упоминание его > в коде. ты опять назовешь меня ламером но про второй случай я не понял. о каком глобе может идти речь _до_ вызова функции? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> DEO> по моему что в > DEO> open(FILE, "бла-бла"); > > DEO> что в > DEO> my $file; > DEO> open($file, "бла-бла"); > > DEO> он неопределенный ;) > > Так мне его проверить негде. А разница между версиями - материя тонкая, > я тебе набросаю, а ты опять придешь, скажешь "не работает". А я твое > письмо читай... тогда пойдем от слова "неопределенный" что в первом что во втором варианте именно вызываемая функция делает хендл определенным, определяет его. :) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> Дык эта... Если они уже поймали супостата, то уже знают, где копать, > когда трафик лишний. Ну, добьешься того, что прикроют исходящие > соединения из CGI-скриптов нафиг... ну это еще когда произойдет, много воды утекет до тех пор ;) >Ибо нефиг... нефиг это инет 48-64кбит за 200$/мес :-\ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> >> Потому что не надо путать необъявленные с неопределенными. > DEO> я там смайлик поставил ;) > DEO> не просто так :D > > А я не поставил. Но тоже не просто так... я думал ты примерчик набросаешь где брать определенный хендл по моему что в open(FILE, "бла-бла"); что в my $file; open($file, "бла-бла"); он неопределенный ;) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> DEO> вот я спрашивал как гуру рекомендуют сию задачу разруливать? > DEO> мне второй вариант нравился (и нравится), но как выяснилось немножко > DEO> выше, он не везде работоспособен :-\ > > Гуру рекомендуют выбирать хостинг, версии софта на котором тебя > устраивают. Сильно нервы экономит, однако. тут другой альтернативы нет просто :-\ все продолжается история которая выше в топике "прокси-сервер на скриптах" я тогда поигрался с попытками портировать Net::Proxy на пятый перл, но там по цепочке мнооого либ тащилось, я где-то половину проковырял, а потом нашел более простое решение: сваял CGI-шку, которая пускает на серваке ssh с ключами -R -L, ну товарищ имел три месяца 100 мегабит инет бесплатный (у них по умолчанию инет где-то 200$/мес 64кбит :-\), сейчас они прочухались, сунули ssh в группу и запретили доступ ну вот я и думаю теперь открыть два сокета и скрипт пусть тупо данные между ними пробрасывает (в двух процессах), а на двух сторонах тунеля там Perl5.8 там уже можно нормальные библиотеки юзать... но там вроде теперь можно заполучить шелл, товарищ занимается, жду :D > Хотя меня бы и 5.0 > устроил... Что до данной проблемы, то кажется, IO::* там уже были. > Только их нельзя было передавать в системные функции, надо пользоваться > методами. Т.е. my $socket = IO::Socket->new(...); > $socket->connect(...); Но не факт, что я правильно помню... я выше спрашивал: никто русскоязычной рассылки по Perl не знает? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> >> DEO> я жду, мне обещали shell на ту машинку, там и разберемся. > >> DEO> варианты проапгрейдить перл не подходят, потому что там стоит BSD, > а у > >> DEO> нее как обычно с обновлениями траблы и они на это не пойдут :( > >> > >> Тогда забудь про возможность подсовывать неопределенные переменные в > >> вызовы socket, open и т.п. > DEO> это почему же они неопределенные? > DEO> написано же my $socket; ;) > > Потому что не надо путать необъявленные с неопределенными. я там смайлик поставил ;) не просто так :D -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> >потому что даже с use strict они не делают die если неверно написал имя > >хендла. > >я понимаю что опять я видимо ламерский вопрос задал, но извиняйте, не > >могу удержаться. > >я для себя взял за правило писать сперва my $file; чтобы разрешить эту > >проблему, а как с ней борются гуру? ;) > open(FILE, "filename") or die $!; это не ответ на вопрос :) речь шла совсем не об использовании open, а о контроле за тем правильно ли написан хендл например use strict; open(FILE, ">filename"); print FILEE "бла-бла\n"; ругается на этапе работы (вернее даже не ругается, а варнинг выдает) а use strict; my $file; open($file, ">filename"); print $filee, "бла-бла\n"; ругается на этапе компиляции вот я спрашивал как гуру рекомендуют сию задачу разруливать? мне второй вариант нравился (и нравится), но как выяснилось немножко выше, он не везде работоспособен :-\ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> 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 и т.п. socket в моем случае как раз отработал, см выше, а вот упало на connect > Вышеприведенный вариант, где используется > bareword Socket_Handle, скорее всего, работать будет. мне не нравятся конструкции вроде open(FILE, "filename"); потому что даже с use strict они не делают die если неверно написал имя хендла. я понимаю что опять я видимо ламерский вопрос задал, но извиняйте, не могу удержаться. я для себя взял за правило писать сперва my $file; чтобы разрешить эту проблему, а как с ней борются гуру? ;) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> С библиотеками как раз проще. я взял пару либ с cpan'а, но пришлось над ними оченно поработать чтобы это на том перле запахало. правда некоторые либы нашлись и в варианте для perl5 (предыдущие версии) > DEO> я жду, мне обещали shell на ту машинку, там и разберемся. > DEO> варианты проапгрейдить перл не подходят, потому что там стоит BSD, а у > DEO> нее как обычно с обновлениями траблы и они на это не пойдут :( > > Тогда забудь про возможность подсовывать неопределенные переменные в > вызовы socket, open и т.п. это почему же они неопределенные? написано же my $socket; ;) > Вышеприведенный вариант, где используется > bareword Socket_Handle, скорее всего, работать будет. будет шелл, гляну :) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> 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 ; > > close(Socket_Handle); тут проблема: пишется некий скрипт для системы где стоит Perl5.0, в котором много чего нет. в частности use warnings, не говоря уж о библиотеках. например на строку: connect($socket, sockaddr_in(80, inet_aton("127.0.0.1"))); тот перл ругается так: Bad symbol for filehandle at /path/to... === use Socket; my $socket; socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp')); connect($socket, sockaddr_in(80, inet_aton("127.0.0.1"))); === хотя этот код работает в perl 5.8 я жду, мне обещали shell на ту машинку, там и разберемся. варианты проапгрейдить перл не подходят, потому что там стоит BSD, а у нее как обычно с обновлениями траблы и они на это не пойдут :( как появится шелл буду разбираться какие либы можно обратно портировать на тот старый перл, а так же какие изменения в перле произошли за это время. мне там скрипт несложный функционально сваять надо, думаю справлюсь... -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> > а вот оно в чем дело, спасибо большое! > > Ну, кстати, в любом учебнике/руководстве/книге/документации это всё описано. мейби :) мне не попалось видимо :D > И с _такими_ > элементарными вопросами меня ты уже заколебал. ну не читай ;) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> use IO::Handle > > > my $socket; > > socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp')); > > connect($socket, sockaddr_in(80, inet_aton("127.0.0.1"))); > $socket->autoflush(1) > > print $socket "GET / HTTP/1.0\n\n"; > > print while(<$socket>); > > > > почему-то висит и ответа сервера не печатает > > Потому что данные из буфера не уходят в сокет. а вот оно в чем дело, спасибо большое! -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> > я нигде не нашел ответа на вопрос можно ли с сокетами в перл работать > > как с файлами? > > Да. > > > а вот в смысле записи в сокет экспериментально попробовал - не работает > > print $socket "бла-бла"; > > Что значит не работает? Как проверяли? > > Может быть не хватает use IO::Handle; > $socket->autoflush(1); my $socket; socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp')); connect($socket, sockaddr_in(80, inet_aton("127.0.0.1"))); print $socket "GET / HTTP/1.0\n\n"; print while(<$socket>); почему-то висит и ответа сервера не печатает а вот если print $socket "GET / HTTP/1.0\n\n"; заменить на send то работает так как предполагалось. вот отсюда и возник вопрос. > Может быть не хватает use IO::Handle; гхм? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> 2. по Perl русскоязычной рассылки никто не знает? ладно раз никто не знает по рассылке, может кто ответит по Perl? я нигде не нашел ответа на вопрос можно ли с сокетами в перл работать как с файлами? в смысле чтения из сокета я попробовал работает $line=<$socket>; а вот в смысле записи в сокет экспериментально попробовал - не работает print $socket "бла-бла"; да я знаю про send, но в данный момент стоит вопрос использования кода куда хочется сокет вместо файла подсунуть... можно как-то научить print'ы писать в сокет? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> > хотя я модуль для FUSE пишу, но ограничения похоже совершенно те же что > > и на просто модули ядра. > > Так вроде ж FUSE это Filesystem in User Space. Т.е. по определению > должна позволять использовать любые user-space библиотеки. Возможно, > правда, для этого нужно как-то по-другому реализовывать собственно > файловую систему. оно-то юзерспейс но функции вызывает модуль ядра и как только функция вызывает что-то не то, сразу все крешится. то есть пробую функцией iconv буфер конвертнуть - все ок. тот же буфер но из функции в FUSE (буфер на этапе иницализации выделен) - крандец системе наступает :-\ я ковырялся трассировал. там на errno какая-то завязка не очень пока разобрался. получается как только iconv errno затронет, сразу начинаются проблемы :-\ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
On Wed, Jun 14, 2006 at 07:26:37PM +0400, Victor Wagner wrote: > On 2006.06.14 at 17:37:22 +0400, Dmitry E. Oboukhov wrote: > > > хотя я модуль для FUSE пишу, но ограничения похоже совершенно те же что > > и на просто модули ядра. > > Так вроде ж FUSE это Filesystem in User Space. Т.е. по определению > должна позволять использовать любые user-space библиотеки. А что получится, если вызов из модуля некой процедуры из внешней библиотеки приведет к обращению к файловой системе, которую сам этот модуль обслуживает? Наверняка всем сразу поплохеет... -- Станислав
Re: пара отвлеченных в опросов, офтопик
On 2006.06.14 at 17:37:22 +0400, Dmitry E. Oboukhov wrote: > хотя я модуль для FUSE пишу, но ограничения похоже совершенно те же что > и на просто модули ядра. Так вроде ж FUSE это Filesystem in User Space. Т.е. по определению должна позволять использовать любые user-space библиотеки. Возможно, правда, для этого нужно как-то по-другому реализовывать собственно файловую систему. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> > 1. залез я за C, давно на нем ничего не писал, а тут модулек для ядра > > назрело написать. наткнулся на то что модули ядра не все подряд функции > > могут вызывать. > > Ядро - это замкнутый в себе статический бинарник. > Чтобы использовать внутри ядра библиотеку, надо поместить эту библиотеку > внутрь ядра. Что можно сделать далеко не с любым кодом: например, код не > должен использовать системные вызовы (либо их использование должно быть > заменено на вызов внутренних функций ядра, их реализующих - а эти функции > не всегда экспортируются); имеются ограничения на использование > динамической памяти; сильно ограничен доступный размер стека, и т.д. ну да на это я и наткнулся. заюзал iconv а он вешает все своими вызовами. хотя я модуль для FUSE пишу, но ограничения похоже совершенно те же что и на просто модули ядра. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
> > а тут необходимо в моем модулечке заюзать библиотеку конвертации между > > кодировками. то есть например конверт cp1251<->koi8-r или koi8-r<->utf8 > > итп. > > может кто ткнет в нужном направлении чтобы долго не ковыряться? > > nls в fs посмотрел linux/nls.h похоже то что нужно. спасибо вечерком поковырпяюсь -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: пара отвлеченных в опросов, офтопик
On Wed, Jun 14, 2006 at 04:12:34PM +0400, Dmitry E. Oboukhov wrote: > а тут необходимо в моем модулечке заюзать библиотеку конвертации между > кодировками. то есть например конверт cp1251<->koi8-r или koi8-r<->utf8 > итп. > может кто ткнет в нужном направлении чтобы долго не ковыряться? nls в fs -- Иван Лох -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]