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

时间:2013-05-08 14:13:39

标签: perl class

有以下课程:

package MyClass;

use strict;
use warnings;

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

    bless ($self, $class);
    return $self;
}

如何设置/获取_class_member的值?

我尝试了以下代码:

sub set_name
{
    my $self = shift();
    $self->_class_member = shift();
}

但是我收到以下错误:

  

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

我在这里做错了什么?

1 个答案:

答案 0 :(得分:8)

$self祝福的哈希。除非您或原作者提供方法_class_member,否则没有这样的方法。

然而,你可以“到达”哈希来访问它:

 $self->{'_class_member'} = shift;

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

$self->{'_vlass_member'} = shift;

没有投诉。因此accessors的价值。