如何获得班级成员的价值?

Ale*_*lex 2 perl class

有以下课程:

package MyClass;

use strict;
use warnings;

sub new
{
    my $class = shift();
    my $self = {
        _class_member => "default"
};

    bless ($self, $class);
    return $self;
}
Run Code Online (Sandbox Code Playgroud)

如何设置/获取值_class_member

我尝试了以下代码:

sub set_name
{
    my $self = shift();
    $self->_class_member = shift();
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

无法通过包"MyClass"找到对象方法"_class_member"...

我在这做错了什么?

Axe*_*man 8

$self是一个有福的哈希.除非您或原作者提供了该方法_class_member,否则没有这样的方法.

但是,你可以"到达"哈希来访问它:

 $self->{'_class_member'} = shift;
Run Code Online (Sandbox Code Playgroud)

这不是实例值的推荐做法,因为它同样容易输入:

$self->{'_vlass_member'} = shift;
Run Code Online (Sandbox Code Playgroud)

没有投诉.因此,访问者的价值.