我在Perl中遇到了一個錯誤,我無法弄清楚爲什麼。在Perl中不是數組引用錯誤
錯誤:沒有在Service.pm數組引用,線20
my $array = [ { name => 'George', surname => 'Marley' } ];
my $helper = CustMessage->new();
$helper = CustMessage->getMessage($array);
然後在我的實用程序文件我有:
sub getMessage {
my ($self, $args) = @_;
my $stringsArray = shift;
my $strings = Service->new({
serviceId => $self->_serviceId(),
});
return unless $strings;
$strings->getStrings($stringsArray);
}
,然後在服務的方法是:
sub getStrings {
my ($stringsArray, $self) = shift;
my @keys = map({ $_->{'name'} } @{$stringsArray});
my $key = join('', @keys);
$key = MIME::Base64::encode($key);
my %results;
$results{$key} = $self->_callStrings->($stringsArray);
$results{$key}->initialize();
$results{$key} = $self->{serviceCalls}->{getStrings};
return $self->{serviceCalls}->{getStrings};
}
錯誤在Service.pm中的getStrings方法的第2行上:
my @keys = map({ $_->{'name'} } @{$stringsArray});
缺少'''在我的($ stringsArray $個體經營)=移位;'? – choroba 2014-12-05 11:17:52
很好的發現,但不幸的是,這不是問題。想想我在複製和粘貼時意外刪除了(有奇怪的)。 – snakespan 2014-12-05 11:28:02
爲什麼'$ helper'是一個對象,然後重新分配'getMessage'輸出的值?我更習慣於看到諸如:my $ helper = CustMessage-> new();我的$ msg = $ helper-> getMessage($ array);'。我猜如果你不再使用'$ helper'作爲對象,那麼重新分配的工作?這是典型的模式嗎? – 2014-12-05 14:43:48