my $param = shift; ... $self->{$_call} = $_param || return $self->{$_call}; #### # (after shifting everything but param) if (@_) { return $self->{$_call} = shift; } else { return $self->{$_call}; }