Skip to content

Instantly share code, notes, and snippets.

@draegtun
Created February 9, 2012 20:07
Show Gist options
  • Save draegtun/1782691 to your computer and use it in GitHub Desktop.
Save draegtun/1782691 to your computer and use it in GitHub Desktop.
Python accessor example converted to Moose
{
package AnotherPerson;
use Moose;
use namespace::autoclean;
has _firstname => (is => 'rw', isa => 'Str', accessor => 'firstname');
has _lastname => (is => 'rw', isa => 'Str', accessor => 'lastname' );
}
my $you = AnotherPerson->new;
$you->firstname('David');
$you->lastname('Mertens');
#
# Stackoverflow answer: http://stackoverflow.com/a/9187853/12195
#
__END__
# orig Python example
class AnotherPerson:
def __init__(self):
self._firstname = None
self._lastname = None
@property
def firstname(self):
return self._firstname
@firstname.setter
def firstname(self, newname):
self._firstname = newname
@property
def lastname(self):
return self._lastname
@lastname.setter
def lastname(self, newname):
self._lastname = newname
you = AnotherPerson()
you.firstname = 'David' # These two lines call instance methods
you.lastname = 'Mertens'
@draegtun
Copy link
Author

There are some Perl modules already on CPAN which do provide lvalue accessors.....

I've never tried any of these so YMMV.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment