in reply to OOP's setter/getter method - is there a way to avoid them?
That is a great book. I read it several times, and foundation of the knowledge I have of references to this day is owed to that book.
Personally, unless absolutely necessary, I try to stay away from having to set attributes individually. I prefer to try to set these within larger public methods that set/reset the attribute then do something functional with it, like this:
sub write_graffiti { my $self = shift; my %params = @_; $self->{colour} = $params{colour} if defined $params{colour}; # spray paint wall with the colour, # whether new or existing }
When I do need to expose a direct setter/getter for an individual attribute, I do both in one fell swoop, in a more generic sub:
sub colour { my $self = shift; my $colour = shift if @_; $self->{colour} = $colour if defined $colour; return $self->{colour}; }
|
---|