Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: accessor abuse..?

by lachoy (Parson)
on Aug 22, 2002 at 16:56 UTC ( [id://192086]=note: print w/replies, xml ) Need Help??


in reply to accessor abuse..?

It's halfway there. Perl has a tradition of using a get/set accessor of the same name versus other language having separate get_foo and set_foo methods. But this is a different matter, since the underlying values are not simple scalars. If you want to keep accessor-only property access, you should use something like:

# Dereference so that they can't go behind our backs sub fields { return @{ $self->{_fields} } } sub add_field { my ( $self, $field ) = @_; push @{ $self->{_fields} }, $field; $self->{_fields_hash}->{ $field } = scalar @{ $self->{_fields} } - 1; } sub remove_field { my ( $self, $field ) = @_; my $idx = $self->field_exists( $field ); return unless ( $idx ); delete $self->{_fields_hash}->{ $field }; splice( @{ $self->{_$fields} }, $idx, 1 ); } sub field_exists { my ( $self, $field ) = @_; return $self->{_fields_hash}->{ $field }; }

(Using the index in as a return value for field_exists() is kind of peek-a-boo logic, but it's a start.)

Untested because I have something due in a few minutes, but you get the idea :-)

Chris
M-x auto-bs-mode

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://192086]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (2)
As of 2024-04-26 06:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found