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 메서드의 두 번째 줄에 있습니다.
,210my @keys = map({ $_->{'name'} } @{$stringsArray});
이 누락 시도 할 수 있을까? – choroba
멋지게 발견되었지만 불행히도 그게 문제가 아닙니다. 실수로 복사 및 붙여 넣기를하는 동안 실수로 제거했다고 생각하십시오 (이상하게 보입니다). – snakespan
왜'$ helper'가 먼저 객체인지 그리고'getMessage'의 결과 값을 재 할당 했습니까?나는 다음과 같은 것을 보는데 익숙하다.'my $ helper = CustMessage-> new(); 내 $ msg = $ 도우미 -> getMessage ($ 배열);'. '$ helper'를 객체로 다시 사용하지 않으면 재 할당이 제대로 작동할까요? 이것은 전형적인 패턴입니까? –