[첫화면으로]Perl/해쉬

마지막으로 [b]

1. 해쉬 관련 함수
2. Anonymous Hash
3. 중괄호 안 bareword
4. keys, values, each 와 레퍼런스 인자
5. 기타
6. Comments

1. 해쉬 관련 함수

keys(%scores)     # %score 의 키들을 나열한 배열
values(%scores)   # %score 의 값들을 나열한 배열
each(%scores)     # %score 의 (키, 값) 엔트리를 하나씩 반환
delete($scores{key1})   # 특정 엔트리 삭제
exists $scores{key2} # 특정 키의 엔트리 존재 여부

2. Anonymous Hash

익명 해쉬와 블록은 둘 다 {..} 형태이고 사용되는 위치가 비슷하기 때문에, 위치에 따라서 컴파일러가 잘못 판단하는 경우가 있을 수 있다. 이런 경우 각각을 다음과 같이 사용하여 컴파일러에게 의도를 알려줄 수 있다.1

3. 중괄호 안 bareword

$hash{shift};    # 이것은 $hash{"shift"}로 해석됨
$hash{+shift};   # 단항 + 연산자 - 아무일도 하지 않는 연산자, shift를 하고 그 값을 중괄호 안에 치환

# 해쉬 뿐 아니라 레퍼런스를 디레퍼런스할 때도
push @{+shift}, shift;

4. keys, values, each 와 레퍼런스 인자

Perl 5.12 에서는 이 세 함수가 배열에도 사용 가능하다

Perl 5.14 에서는 이 세 함수, 그리고 배열에 쓰는 함수인 push, unshift, pop, shift, splice까지, 인자로 레퍼런스를 받을 수 있다.

그런데 이 두 가지 변화가 맞물리면서, 문제의 소지가 좀 있는 모양.

5. 기타

6. Comments

이름:  
Homepage:
내용:
 

컴퓨터분류
각주:
1. Intermediate Perl, Chapter 05

마지막 편집일: 2013-8-6 11:06 pm (변경사항 [d])
3911 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기