2011-05-15 3 views
0

Perl에서 해시를 만들려면 어떻게해야하며 그 값은 2D 배열의 주소가 될까요?
2D 배열의 값도 동적으로 가져와야합니다.2 차원 배열의 주소 값을 보유하는 해시

정확한 코딩을 알려주세요. 나는 머리를 부러 뜨린다.

+6

스택 오버플로에 오신 것을 환영합니다! http://stackoverflow.com/questions/how-to-ask를 읽으십시오. 이것은 "나에게 codez"사이트가 아닙니다. –

+1

새로운 Perl 사용자를 도와 드리겠습니다. 그러나 정확한 코드는 매우 무례합니다. 우리는 당신을 위해 당신의 일을하지 않고 서로를 돕기 위해 왔습니다. 저는 여러분에게 필요한 교훈을 가르치는 모범과 가르침을 줄 수있는 문서에 대한 링크를 여러분에게주었습니다. –

답변

2

어때?

my %hash = (
    foo => [[1, 2], [3, 4]], 
    bar => [[5, 6], [7, 8]] 
); 

2 차원 배열은 여기에 배열의 배열로 모델링됩니다.

1

배열과 해시는 스칼라 값만 사용할 수 있지만 배열 참조 ([]을 사용하여 생성됨)는 스칼라입니다. 따라서 중첩 배열 만들기는이 구문을 사용하여 수행됩니다. 다음과 같이 생각하십시오.

$array_element_1 = ['row 1 column 1', 'row 1 column 2']; 
$array_element_2 = ['row 2 column 1', 'row 2 column 2']; 
$array_reference = [$array_element_1, $array_element_2]; 
%hash = ('key' => $array_reference); 

중간 저장을 제외한 모든 경우를 제외하고 이들은 익명 참조라고합니다 (구조에 대한 참조를 만들기 전에 원래 구조에 이름을 부여 할 필요가 없으므로). 익명 해시 참조는 {}을 사용하여 만들어집니다. perldoc perlreftut에서 자세한 내용을 읽어보십시오.

관련 문제