2013-10-25 2 views
2

내가 현재 위치에서 익명 해시의 배열을 수정하기 위해 노력하고있어 내부 익명의 해시 참조를 수정할 수 없습니다 나는 value_parser()가 해쉬 레퍼런스를 통해 데이터 구조를 수정 했으므로 in-place를 기대했다. 통찰력을 주셔서 감사합니다.는 두 개의 서브 루틴을 통해 서브 루틴

답변

3

$value에 아무 것도 할당하지 마십시오. 추가

$data->{$key} = $value; 
+0

대단히 감사합니다. 나는 $ value에 대해 혼란스러워했다. 나는'$ data'가 참조이고,'each()'와 함께'$ value'도 참조가 될 것이고 값 자체가 아닌 값을 가리킬 것이라고 생각했습니다. –

+1

당신은 별칭이 아닌 참조를 생각하고 있습니다. 그리고 'each'가 별칭을 반환하더라도, 당신은 결코 var에 할당하지 않고'$ value' (그것의 복사본)을 할당합니다. – ikegami

+2

참조를 반환했다면'$$ value_ref = value_parser ($$ value_ref)'를 사용해야합니다. – ikegami