미리 정의 된 해시 테이블 집합이 있으며 변수 이름을 사용하여 해시 중 하나를 참조하고 키 값에 액세스하려고합니다. 다음 코드는 해시가 채워지더라도 null을 반환합니다. 여기서 내가 잘못하고있는 것이 무엇인가, 아니면 이것을 달성하기위한 더 좋은 방법이 있습니까?변수 이름을 사용하여 해시를 참조하려면 어떻게해야합니까?
my %hash = (alpha => 'beta', gamma => 'delta');
가의 값을 인쇄하려면 :
my $hash_name = 'TEXT';
다음 코드는 해시에 할당입니다 :
my %TEXT1 = (1 => 'Hello World',);
my %TEXT2 = (1 => 'Hello Mars',);
my %TEXT3 = (1 => 'Hello Venus',);
my $hash_name = 'TEXT1';
my $hash_ref = \%$hash_name;
print ${$hash_ref}{1}; #prints nothing
'my $ hash_ref = \ % $ hash_name'이 (가) 예상 한 것을 설명하면 많은 도움이됩니다. – Borodin
hash_ref가 변수 이름으로 정의 된 해시를 참조하도록합니다. 명확한 수정 된 질문입니다. – freeworlder
참고 사항 [정수 인덱스가있는 변수 이름에 접미사가있을 때마다 배열을 대신 사용해야한다는 것을 알게 될 때마다] (https://stackoverflow.com/questions/1549685/how-can-i-use-a-variable -as-a-variable-name-perl). –