Perl数组作为对象变量

时间:2011-03-29 04:17:05

标签: java arrays perl variables object

如果我有一个如下所示的Java类,那么相同的Perl表示是什么?

class Temp {
  int my_int;
  int my_array[];

  Temp() {
  }
};

具体来说,我有兴趣知道如何使用数组作为对象变量吗?

2 个答案:

答案 0 :(得分:7)

简短的回答是:

package Temp;

sub new {
    my $self = bless {
        'my_int' => 0,
        'my_array' => [] # The trick here is to use an array *reference*
                         # hence the square brackets rather than ()
    };
    return $self;
}

对于(更多!)更长的答案,请分别查看perlrefperllolperlboot以获取引用,列表列表和OOP训练营的介绍。一旦掌握了基础知识,请考虑使用Moose在Perl中使用更高级的OOP方法。

答案 1 :(得分:4)

使用Moose,该类可以写成:

package Temp;

use Moose;

has 'my_int' => (
    'is'  => 'rw',
    'isa' => 'Int',
);

has 'my_array' => (
    'is'  => 'rw',
    'isa' => 'ArrayRef[Int]',
);

__PACKAGE__->meta->make_immutable();