귀하의 모호한 설명은 내가 당신이 무슨의도 확실하지 않다 생각합니다. 명확하게 설명 할 수있을 때까지 데이터 구조를 흡수하는 데 시간을 투자해야합니다.
은 당신이 당신은 %의 hash1의 슬라이스의 키와 같은 %의 hash2의 요소 중 하나가 참조하는 배열을 사용하려는 당신이
my %hash1 = (
apple => 2,
banana => 3,
orange => 4,
);
my %hash2 = (
red => [qw(apple )],
yellow => [qw(apple banana)],
orange => [qw(orange )],
);
이 말을 생각합니다. 당신이 그것을 이해한다면, 그것은 단계적으로 그것을하는 것에 불과합니다.
$hash2{yellow}
우리에게 원하는 배열에 대한 참조를 얻을 것이다
및
@{ $hash2{yellow} }
은 우리에게 배열 자체를 얻을 것이다. 우리는 우리가 얻을 해시 조각
@hash1{EXPR}
의 인덱스 식으로 그것을 사용하려는 : 나는 (다른 해시 ** 개최 ** 값을 사용하여 해시를하지 슬래시하려고
@hash1{ @{ $hash2{yellow} } } # 2,3
내 대답을 바꿉니다. 처음에는 질문에 대한 대답이 없었습니다. – ikegami
감사합니다. 언제'@ {$ hash {$ item}}'대신'@hash {...}'를 사용합니까? –
@roseck, 배열 역 참조 ('@ {...}') 대신 해시 슬라이스 ('@hash {...}')를 원할 때마다. – ikegami