Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Yury Kopyl                           2:5020/400     20 Apr 2004  10:03:10
 To : Artem Chuprina
 Subject : Re: OOP perl
 -------------------------------------------------------------------------------- 
 
 Artem Chuprina -> "Re: OOP perl" :
 
  IF>>>>> Кстати, относительно новомодности. Вот смотрю я на грядущее -
  IF>>>>> perl6 - и что-то оно мне ну очень не нравится. Может, разубедит
  IF>>>>> кто?
 
  YK>>>> ожидал большего. Работа с объектами как была на уровне "заката
  YK>>>> солнца вручную", так и осталась.
 
  AC>>> IMHO как раз вот уж что-что, а объекты в современном perl
  AC>>> реализованы как раз очень хорошо.  Для парадигмы perl.  Чистым
  AC>>> ОО-языком его делать смысла нет, а из нечистых его подход мне
  AC>>> нравится больше всего.  Причем, я бы сказал, все ровно наоборот -
  AC>>> никакого заката вручную, все на полном автопилоте.
 
  YK>> Было бы не плохо, если бы private/protected, abstract, finalize,
  YK>> static (методы/переменные класса) были все таки встроенными, а не
  YK>> танца с бубном за счет Attribute::Handle.
 
  AC> Hе надо пытаться делать из перла язык типа "шаг влево, шаг вправо
  AC> приравнивается к бегству".  Возможность же пользоваться одним и тем
 
 Я же не говорю, что это нужно обязательно. Hо если будут такие директивы на
 уровне синтаксиса - уже будет счасте.
 
  AC> же методом и как static, и как обычным методом, рулит, а не
  AC> наоборот.  А со static переменными в перле, я бы сказал, гораздо
  AC> лучше, чем в ОО языках...
 
 ну давай рассмотрим пример:
 
 как сейчас,в лоб:
 
 sub test{ #static
       shift if (UNIVERSAL::isa($_[0],$package));
       my (@vars)=@_;
       ...
 };
 
 можно вызывать:
 
 MyClass::test(@vars);
 MyClass->test(@vars);
 $MyClassInstance->test(@vars);
 
 и параметры будут передаваться правильно
 
 но гораздо лучше было бы:
 
 static sub test{
     my (@vars)=@_;
 };
 
 Сейчас у меня сделано через Attribute::Handlers
 
 sub :static test {
     my (@vars)=@_;
 };
 
 -----------------
 use Attribute::Handlers;
 sub UNIVERSAL::static : ATTR(CODE) {
    my ($package, $symbol, $code, $attr, $data) = @_;
 
    no warnings 'redefine';
    *{$symbol} = sub {
       shift if (UNIVERSAL::isa($_[0],$package));
       $code->(@_);
    };
 };
 
 минус - приходится подключать каждый раз модуль.
 
  Yury Kopyl aka hrg | http://id.totem.ru | "мы не пьем - мы лечимся..."
 
 --- ifmail v.2.15dev5.3
  * Origin: IAC Samara-Internet, Ltd. (2:5020/400)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 OOP perl   Yury Kopyl   19 Apr 2004 20:23:12 
 Re: OOP perl   Artem Chuprina   19 Apr 2004 21:30:44 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 10:03:10 
 Re: OOP perl   Artem Chuprina   20 Apr 2004 12:14:53 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 13:28:37 
 Re: OOP perl   Artem Chuprina   20 Apr 2004 16:34:07 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 17:10:39 
 Re: OOP perl   Vargen   20 Apr 2004 20:22:10 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 11:58:32 
 Re: OOP perl   Nick Kostirya   20 Apr 2004 10:22:10 
 OOP perl   Ivan Frolkov   19 Apr 2004 21:57:14 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 10:03:10 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 11:27:48 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 11:53:31 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 12:10:25 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 12:24:23 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 13:28:38 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 14:33:06 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 16:10:24 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 17:46:23 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 18:48:16 
 Re: OOP perl   Ivan Frolcov   20 Apr 2004 19:08:09 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 19:22:21 
 Re: OOP perl   Ivan Frolkov   20 Apr 2004 22:52:29 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 12:42:10 
 Re: OOP perl   Ivan Frolcov   21 Apr 2004 13:14:08 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 14:28:36 
 Re: OOP perl   Ivan Frolcov   21 Apr 2004 15:43:11 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 16:19:34 
 Re: OOP perl   Ivan Frolcov   21 Apr 2004 16:38:21 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 16:56:07 
 Re: OOP perl   Ivan Frolcov   21 Apr 2004 17:30:13 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 17:47:25 
 Re: OOP perl   Ivan Frolcov   21 Apr 2004 18:29:00 
 Re: OOP perl   Yury Kopyl   22 Apr 2004 10:02:06 
 Re: OOP perl   Ivan Frolcov   22 Apr 2004 11:15:18 
 Re: OOP perl   Yury Kopyl   22 Apr 2004 18:23:12 
 Re: OOP perl   Ivan Frolcov   22 Apr 2004 18:50:38 
 Re[2]: OOP perl   Mikhail Polykovsky   21 Apr 2004 15:22:59 
 Re: OOP perl   Faceless   23 Apr 2004 23:48:31 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 12:02:38 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 12:42:10 
 Re: OOP perl   Serge Chervjakov   21 Apr 2004 13:38:56 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 15:04:20 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 15:24:31 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 18:44:40 
 Re: OOP perl   Yury Kopyl   22 Apr 2004 10:02:05 
 Re: OOP perl   Artem Chuprina   20 Apr 2004 15:14:00 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 16:10:24 
 Re: OOP perl   Artem Chuprina   20 Apr 2004 16:55:03 
 Re: OOP perl   Yury Kopyl   20 Apr 2004 17:10:39 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 11:59:07 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 12:42:10 
 Re: OOP perl   Artem Chuprina   21 Apr 2004 15:03:18 
 Re: OOP perl   Yury Kopyl   21 Apr 2004 15:24:31 
Архивное /ru.cgi.perl/102775be33b0b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional