Может и работает, но сложновато для восприятия. Я бы все таки взял Mouse, пусть он и немного избыточен для вашего случая и придется написать десяток лишних байт. K.I.S.S.<br><br><div class="gmail_quote">28 марта 2012 г. 17:33 пользователь Nick Knutov <span dir="ltr"><<a href="mailto:mail@knutov.com">mail@knutov.com</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Почему не работает? Это BEGIN{}, если я правильно помню, не наследуется, но прописываем, например, в конструктор, в новом конструкторе вызываем конструктор предка и всё должно работать.<br>

<br>
Впрочем, наследования у меня тоже нигде нет :)<br>
<br>
<br>
28.03.2012 18:23, Dmitry Karpich написал:<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Mar 28, 2012, at 2:08 PM, Nick Knutov wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
И Class::Accessor не надо.<br>
А вот в отквотированном ниже коде я минусов не вижу.<br>
<br>
</blockquote>
наследование. Оно не работает.<br>
<br>
Я как-то давненько писал что-то подобное<br>
<a href="http://search.cpan.org/perldoc?Object::Botox" target="_blank">http://search.cpan.org/<u></u>perldoc?Object::Botox</a><br>
Но не стоит этим пользоваться.<br>
Медленно.<br>
<br>
Возьмите Moose или *Acc-что-то там.<br>
<br>
Митяй.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
btw, мне совершенно не нужен контроль ro/rw и у меня нет сеттеров.<br>
<br>
28.03.2012 16:03, Ilya Chesnokov написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ага, только он в ~6 раз быстрее Class::Accessor - а так не надо, конечно ;)<br>
<br>
28 марта 2012 г. 13:54 пользователь Nick Knutov<<a href="mailto:mail@knutov.com" target="_blank">mail@knutov.com</a>>   написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Вещи, имеющие синтаксис вида<br>
<br>
has 'x' =>   (is =>   'rw', isa =>   'Int');<br>
has 'y' =>   (is =>   'rw', isa =>   'Int');<br>
<br>
не вариант вообще. Это плохо, это многобукв, так писать не надо.<br>
<br>
<br>
28.03.2012 15:52, Alexandr Alexeev написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<a href="https://metacpan.org/module/Mouse" target="_blank">https://metacpan.org/module/<u></u>Mouse</a> умеет это и кое-что другое. Работает<br>
быстро, так что не путать с Moose.<br>
<br>
28 марта 2012 г. 13:43 пользователь Гнатына Александр<<a href="mailto:gnatyna@ya.ru" target="_blank">gnatyna@ya.ru</a><br>
<mailto:<a href="mailto:gnatyna@ya.ru" target="_blank">gnatyna@ya.ru</a>>>   написал:<br>
<br>
<br>
<br>
    package My::Base;<br>
    sub _prop_simple_call{<br>
        my $self  = shift;<br>
        my $name = shift;<br>
        if(@_){<br>
            $self->{$name} = $_[0];<br>
        }<br>
        return $self->{$name};<br>
    }<br>
    sub _make_simple_props{<br>
        my $class = shift;<br>
        my @names = @{shift||[]};<br>
        for my $name(@names){<br>
            no strict "refs";<br>
            my $func = $class.'::'.$name;<br>
            *$func  = sub {<br>
                my $self = shift;<br>
                return $self->_prop_simple_call($<u></u>name, @_);<br>
            }<br>
        }<br>
    }<br>
<br>
    package My::Some;<br>
    use base My::Base;<br>
<br>
    __PACAKGE__->_make_simple_<u></u>props([qw(id name title)]);<br>
<br>
    В Срд, 28/03/2012 в 15:21 +0600, Nick Knutov пишет:<br>
     >   Есть ряд объектов, у которых есть заранее известный, но иногда<br>
     >   меняющийся [в процессе разработки] список полей, для которых надо<br>
    писать<br>
     >   геттеры вида<br>
     ><br>
     >   sub id { my $self = shift; return $self->{id}; }<br>
     ><br>
     >   Или с логикой чуть посложнее, но это еще один список полей и<br>
    полностью<br>
     >   одинаковый код, кроме имени поля.<br>
     ><br>
     >   Возникла мысль генерить эти методы из заранее определенного списка<br>
на<br>
     >   этапе, например, загрузки модуля или компиляции кода. perldoc что?<br>
     ><br>
     >   Альтернативный вариант - сделать то же самое через AUTOLOAD, вот<br>
    только<br>
     >   в гугле находятся несколько очень разных примеров, как это<br>
    делается, и в<br>
     >   каждом говорится, что примеров есть разные, но вот именно этот<br>
способ<br>
     >   лучше и избавит от разных проблем и багов. So, как все же это<br>
    надо делать?<br>
     ><br>
     >   --<br>
     >   Best Regards,<br>
     >   Nick Knutov<br>
     >   <a href="http://knutov.com" target="_blank">http://knutov.com</a><br>
     >   ICQ: 272873706<br>
     >   Voice: +7-904-84-23-130<br>
<br>
<br>
    --<br>
    Moscow.pm mailing list<br>
    <a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a><mailto:<a href="mailto:moscow-pm@pm.org" target="_blank">moscow<u></u>-pm@pm.org</a>>   | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>

<br>
<br>
<br>
<br>
<br>
--<br>
С уважением, Александр<br>
Личный блог: <a href="http://eax.me/" target="_blank">http://eax.me/</a><br>
Мой форум: <a href="http://it-talk.org/" target="_blank">http://it-talk.org/</a><br>
Мой Twitter: <a href="http://twitter.com/afiskon" target="_blank">http://twitter.com/afiskon</a><br>
<br>
<br>
<br>
</blockquote>
<br>
--<br>
Best Regards,<br>
Nick Knutov<br>
<a href="http://knutov.com" target="_blank">http://knutov.com</a><br>
ICQ: 272873706<br>
Voice: +7-904-84-23-130<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote>
<br>
<br>
<br>
</blockquote>
<br>
--<br>
Best Regards,<br>
Nick Knutov<br>
<a href="http://knutov.com" target="_blank">http://knutov.com</a><br>
ICQ: 272873706<br>
Voice: +7-904-84-23-130<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote>
<br>
</blockquote>
<br>
-- <br>
Best Regards,<br>
Nick Knutov<br>
<a href="http://knutov.com" target="_blank">http://knutov.com</a><br>
ICQ: 272873706<br>
Voice: +7-904-84-23-130<br>
-- <br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>С уважением, Александр<br>Личный блог: <a href="http://eax.me/" target="_blank">http://eax.me/</a><br>Мой форум: <a href="http://it-talk.org/" target="_blank">http://it-talk.org/</a><br>
Мой Twitter: <a href="http://twitter.com/afiskon" target="_blank">http://twitter.com/afiskon</a><br><br>