Re: RFC: Automatic accessors for hash-based objects

[email protected] (Dave Rolsky)
Newsgroups perl.perl6.language.objects
Message-ID <[email protected]>
On Sat, 26 Aug 2000, James Mastros wrote:

> This example shows how much easier it would have been to write the
> example on line 170 of perltoot.pod:
> 
>     package Person;
>     use strict;
>     
>     ##################################################
>     ## the object constructor (simplistic version)  ##
>     ##################################################
>     sub new {
>         my $self  = {};
>         $self->{name} :accessible('rw') = undef;
>         $self->{age}  :accessible('rw') = undef;
>         $self->{peers}:accessible('rw') = [];
>         bless($self);           # but see below
>         return $self;
>     }

This is an interesting idea.  I would think that ideally it would be
combined with pre-declared limited keyspace hashes (which we currently
have in a semi-crippled way with pseudohashes).  I'd much prefer that
these declarations happen outside the contructor, more like this maybe.  
Also I really dislike 'rw' and such.  Let's be a little clearer:

And this way we could drop the whole :accessible thing.  How about this:

use fields qw(
  name :read :write
  age  :read :write
  peers :read :write
  birth_date :read
);


Of course, what I think I really want is the ability to do a sort of
auto-tie so that instead of Perl generating accessors, it ties my
attributes directly to my own accessor function.  That could be
incorporated into this syntax perhaps?  Mayb as:

use fields qw(
  name :read => \&name :write => \&name
  age :read => \&get_age :write => \&set_age
);


Just some thoughts.


-dave

/*==================
www.urth.org
We await the New Sun
==================*/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.