perl 언어 입문 (5)

제6 장 하 쉬
1. 해시
  하 쉬 는 데이터 구조 로 많은 값 을 수용 하고 무 작위 로 액세스 할 수 있 습 니 다. 많은 키 쌍 입 니 다. 키 는 문자열 이 고 유일한 것 이지 만 키 는 여러 값 (값 은 중복 가능) 에 대응 할 수 있 습 니 다. 키 와 값 은 모두 임의의 스칼라 입 니 다.
 
값 은 숫자, 문자열, undef 일 수 있 습 니 다.
2. hash 요소 에 접근
전체 해시 방문

   
   
   
   
  1.   $family_name{"fred"}
  맞다.
hash 할당 은 목록 할당 의 컨 텍스트 를 가 져 옵 니 다. 목록 의 요 소 는 키 쌍 이 어야 합 니 다.
  3 가지 할당 방법:
%family_name = ("foo",35,"bar",12.4); %family_name = qw/foo 35 bar 12.4/; %family_name = 뚱뚱 한 화살표 사용 하기;
  # 숫자 와 문자열 은 필요 에 따라 자동 으로 변 환 됩 니 다.

   
   
   
   
  1.   %family_name

  hash 반전, 여러 값 이 있 으 면 뒤의 키 가 앞 에 있 는 것 을 덮어 씁 니 다.
  %new_hash = reverse %old_hash;
  해시 풀 림 (목록 상하 문)
  @any_array = %family_name;
  풀 어 진 후 출력 이 반드시 당초 할당 한 순서 가 아니 라 는 뜻 입 니 다. 단, 키 대응 값 은 고정 되 어 있 습 니 다.

  
  
  
  
  1. %new_hash = %old_hash; 

4. 해시 함수
  반환 키 목록
  keys %hash
  반환 값 목록
  values %hash
  리 턴 키 의 개수
  my $counts = keys %hash;
  print scalar(keys %hash);
  반환 가치 개수
  my $counts = values %hash;   
  불 판단
  if(%hash)
  # hash 가 비어 있 지 않 으 면 진짜 로 돌아 갑 니 다.
5. each 함수
  매번 한 그룹의 키 값 을 되 돌려 줍 니 다.

  
  
  
  
  1. hash  
  2.   my %family_name = ( 
  3.      "foo" => 35, 
  4.      "bar" => 12.4, 
  5.      ); 

\ # 빈 목록 으로 돌아 갈 때 까지 반복 종료
 
\ # 키 가 여러 값 에 대응 할 때 어떻게 되 는 지 모 르 겠 습 니 다.
 
  어떤 키 가 존재 하 는 지 확인 합 니 다.

  
  
  
  
  1. while (($key,$value)= each %hash)  { 
  2.       print "$key => $value
    "; 
  3.       } 

  # 진짜 키 diao 로 돌아 가기 
  지정 한 키 와 값 삭제

  
  
  
  
  1. if (exists $hash{"diao"}) 

\ # 키 가 존재 하지 않 으 면 바로 끝 납 니 다. 힌트 를 주지 않 습 니 다.

좋은 웹페이지 즐겨찾기