package Some::Class;
use strict;
use warnings;
sub new {
my $class = shift;
return bless { @_ }, $class;
}
sub foo {
my $self = shift;
$self->{foo} = shift if @_;
return $self->{foo};
}
sub bar {
my $self = shift;
$self->{bar} = shift if @_;
return $self->{bar};
}
sub baz {
my $self = shift;
$self->{baz} = shift if @_;
return $self->{baz};
}
sub do_something_useful {
...
}
####
package Some::Class;
use strict;
use warnings;
sub new {
my $class = shift;
return bless { @_ }, $class;
}
foreach my $name ( qw( foo bar baz ) ) {
no strict 'refs';
*{ __PACKAGE__ . "::$name" } = sub {
my $self = shift;
$self->{$name} = shift if @_;
return $self->{$name};
};
}
sub do_something_useful {
...
}
##
##
package Some::Class;
use strict;
use warnings;
sub new {
my $class = shift;
return bless { @_ }, $class;
}
use tt;
[% FOREACH name IN [ 'foo', 'bar', 'baz' ] %]
sub [% name %] {
my $self = shift;
$self->{[% name %]} = shift if @_;
return $self->{[% name %]};
}
[% END %]
no tt;
sub do_something_useful {
...
}