use Carp;
sub name {
my $self = shift;
if (@_) {
$self->{name} = shift;
} elsif (!defined wantarray) {
croak "Error:",
(caller(0))[3],
" called in void context with no arguments";
}
return $self->{name};
}
####
sub set_name {
my $self = shift;
## validation /untainting here ##
$self->{name} = shift;
return $self->{name};
}
sub name {
my $self = shift;
if (@_) { warn "Attempt to set value in get" }
return $self->{name};
}
##
##
my $val = $obj->set_name(@foo);
##
##
die "No arguments in set_name()" unless @_;