Из комментария Манни я сделал некоторые изменения в моей программе, как показано ниже:
TestArrayObject.pm:
package TestArrayObject;
use strict;
use Class::ArrayObjects define => {
fields => [qw(name id address)],
};
sub new {
my ($class) = @_;
my $self = [];
bless $self, $class;
return $self;
}
sub Name {
my $self = shift;
$self->[name] = shift if @_;
return $self->[name];
}
sub Id {
my $self = shift;
$self->[id] = shift if @_;
return $self->[id];
}
sub Address {
my $self = shift;
$self->[address] = shift if @_;
return $self->[address];
}
1;
==> Я добавил метод get / set для доступа к внутреннему объекту массива.
Test.pl:
use strict;
use TestArrayObject;
use Data::Dumper;
my $test = new TestArrayObject;
$test->Name('Minh');
$test->Id('123456');
$test->Address('HN');
print Dumper $test;
И окончательный вывод:
$VAR1 = bless( [
'Minh',
'123456',
'HN'
], 'TestArrayObject' );
Это именно то, что я ожидал.
Спасибо.