小编Ste*_*eve的帖子

Perl类关闭

我一直在尝试在perltoot中描述的对象内部创建一个闭包.我已经完全复制了它,甚至复制和粘贴它,但我仍然能够以通常的方式访问该对象,$obj->('NAME').我正盯着失去耐心!

我是误会了什么?我多年来一直在使用perl进行个人项目,并且刚刚开始掌握课程和OOP.

package Person;

sub new {
     my $that  = shift;
     my $class = ref($that) || $that;
     my $self = {
        NAME  => undef,
        AGE   => undef,
        PEERS => [],
     };
     my $closure = sub {
        my $field = shift;
        if (@_) { $self->{$field} = shift }
        return    $self->{$field};
     };
     bless($closure, $class);
     return $closure;
}

sub name   { &{ $_[0] }("NAME",  @_[ 1 .. $#_ ] ) }
sub age    { &{ $_[0] }("AGE",   @_[ 1 …
Run Code Online (Sandbox Code Playgroud)

perl

7
推荐指数
1
解决办法
442
查看次数

标签 统计

perl ×1