-1
객체에 하위 배열을 저장하는 데 몇 시간의 노력을했지만 실패했습니다. 어쩌면 누군가가 perl로 깊은 사본을 저장하는 방법을 보여줄 수 있습니다. 이 질문이 명확한 지 알 수는 없지만 쉽게 해결할 수 있어야합니다 ...펄 객체의 참조 대신에 deepcopy 배열
여기 예. 여기
개체 클래스
package obj;
use strict;
use warnings;
require Exporter;
our @ISA = qw(Exporter);
sub new(\@){
my $class=shift;
my $this={};
$this->{"array"}=shift;
return bless($this,$class);
}
sub getArray(){
my $this=shift;
return $this->{"array"};
}
이 아무것도 반환하지
use strict;
use warnings;
use obj;
my @a=(1,2);
push @a,3;
my $ob=obj->new(\@a);
@a=();
print @{$ob->getArray()};
테스트 클래스 - 배열 역 참조 이동하지 않습니다?
이렇게하는 방법?
thx
를 사용하거나하여 단순 복사본을'$이 - 난 이렇게하면> { '배열'} = [@에게 {시프트}] ' – ysth
가 출력이 될 것이다 스칼라 및 첫 번째 배열 요소 1 반환합니다. 나는 @ a =() 덮어 쓰기 때문에 깊은 복사본이 필요하다고 생각합니다. 그래서 참조 된 배열은 없어집니다. Storable qw (dclone) 사용; 내가 원하는 걸해라. thx – pyr0
@ pyr0, 내 코드 또는 ysth를 참조하는 경우 모르겠지만 배열의 단일 요소를 복사하지 마십시오. – ikegami