|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Paul Kulchenko 2:5020/400 15 Jun 2000 19:26:05 To : All Subject : Re: Exporter, @EXPORT, @EXPORT_OK... -------------------------------------------------------------------------------- Hi, Denis! Denis Mittsev wrote in message <86zoonljyv.fsf@dmhome.orsk.ru>... >paulclinger@yahoo.com writes: > >> >2) описать обязательные переменные в tag, и >> >use Module qw(:tag $x $y); >> Правильным является как обычно вариант 3. >> 3) use Module qw(:DEFAULT $x $y) > > Hу етишкин кот.. даже в мане сказано, да глаз уже замылился. >Благодарствуем ! Тогда следующий вопрос: посовеуйте чтиво по созданию >модулей одновременно и с объектным интерфейсом, и с интерфейсом через >экспорт. Пример для подражания - CGI.pm, только великоват он для обучения, А ты возьми одну функцию и разбери как она работает в двух вариантах. >может где теория этого дела расписана ? Или суперсекретов здесь нет и кто-то Можно порекомендовать Object Oriented Perl by Damian Conway, но я его видел в оригинале и у меня большие сомнения по поводу русского перевода. Практически все подобные вопросы там рассмотрены. >может сформулировать основные положения ? Вообщем-то ничего хитрого там нет. Внутри метод от функции ничем не отличается (почти), любая функция может быть вызвана как метод и наоборот. Однако необходимо добавить небольшой код внутри функции, поскольку функция вызванная как метод получит один дополнительных параметер, ссылку на объект, или имя класса, в зависимости от того, как ее вызвали: как функцию класса или как метод объекта. В CGI.pm для этого добавили один вызов, и если функцию вызвали как функцию, Stein создает объект специального класса (CGI::DefaultClass) и заносит на него ссылку. Дальше все как обычно. Много наворочено, конечно, с динамической загрузкой и пр., но к данному вопросу это отношения не имеет, так что просто игнорируй и все. Естественно никто не мешает написать две РАЗHЫЕ функции для OO и неOO интерфейсов, но это как-то не очень красиво Читать perltoot, perlbot, perlobj и исходник CGI.pm. Должен разобраться. Если нет, пиши. Best wishes, Paul. --- ifmail v.2.15dev5 * Origin: Rostelecom/Internet Centre (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6552da322671.html, оценка из 5, голосов 10
|