我有一个将数组存储为实例变量的对象。由于Perl似乎不支持这一点,我必须将引用存储到数组中。但是,我无法弄清楚如何在创建这些数组后再进行变异。这些方法似乎只会改变本地副本。 (目前,在addOwnedFile()的末尾,对象数据保持不变)。Perl中的数组访问器方法
sub new {
my ($class) = @_;
my @owned_files =();
my @shared_files =();
my $self = {
#$[0] is the class
_name => $_[1],
_owned_files => \[],
_shared_files => \[],
};
bless $self, $class;
return $self;
}
#Add a file to the list of files that a user owns
sub addOwnedFile {
my ($self, $file) = @_;
my $ref = $self -> {_owned_files};
my @array = @$ref;
push(@array, $file);
push(@array, "something");
push(@{$self->{_owned_files}}, "something else");
$self->{_owned_files} = \@array;
}
阅读[perldoc perlref](http://perldoc.perl.org/perlref.html)和[perldoc perlreftut](http://perldoc.perl.org/perlreftut.html) – 2011-03-31 02:15:25