해시는 키/값 쌍의 모음입니다.
Perl의 해시 변수는 백분율 기호(%)로 시작합니다.
액세스 해시 요소 형식: ${key} .
다음은 간단한 해시 예입니다.
예
#!/usr/bin/perl %data = ( ' google ' , ' google.com ' , ' codercto ' , ' codercto.com ' , ' taobao ' , ' taobao.com ' ) 인쇄 ; " $ data{'google'} = $data {'google'} n " ; 인쇄 " $ data{'codercto'} = $data {'codercto'} n " ; 인쇄 " $ data{'taobao'} = $data {'taobao'} n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
해시 만들기
해시를 생성하는 방법에는 두 가지가 있습니다.
1. 각 키에 대한 값 설정
$data{'google'} = 'google.com';$data{'codercto'} = 'codercto.com';$data{'taobao'} = 'taobao.com';
2. 목록을 통한 설정
목록의 첫 번째 요소는 키이고 두 번째 요소는 값입니다.
%data = ('google', 'google.com', 'codercto', 'codercto.com', 'taobao', 'taobao.com');
=> 기호를 사용하여 키/값을 설정할 수도 있습니다.
%data = ('google'=>'google.com', 'codercto'=>'codercto.com', 'taobao'=>'taobao.com');
다음 예는 따옴표 대신 -를 사용하여 위 예를 변형한 것입니다.
%data = (-google=>'google.com', -codercto=>'codercto.com', -taobao=>'taobao.com');
이러한 방식으로 키에 공백이 나타날 수 없습니다. 요소를 읽는 방법은 다음과 같습니다.
$val = $data{-google}$val = $data{-codercto}
해시 요소에 액세스
액세스 해시 요소 형식: ${key} , 예는 다음과 같습니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , ' taobao ' => ' taobao.com ' ) 인쇄 " $ data{'google'} = $data {'google'} n " ; 인쇄 " $ data{'codercto'} = $data {'codercto'} n " ; 인쇄 " $ data{'taobao'} = $data {'taobao'} n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
해시 값 읽기
배열처럼 해시에서 값을 추출할 수 있습니다.
해시 값은 배열 구문 형식( @{key1,key2} ) 으로 추출됩니다.
예
#!/uer/bin/perl %데이터 = ( - 타오바오 => 45 , - 구글 => 30 , - 코덱토 => 40 ) ; @array = @data { - taobao , - codercto } ; " 배열 : @array n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
배열: 45 40
해시 키와 값 읽기
모든 키 읽기
키 함수를 사용하여 해시의 모든 키를 읽을 수 있습니다. 구문은 다음과 같습니다.
키 %HASH
이 함수는 모든 해시에 대한 모든 키의 배열을 반환합니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , ' taobao ' => ' taobao.com ' ) @names = 키 % 데이터 인쇄 " $names [0] n " ; 인쇄 " $names [1] n " ; 인쇄 " $names [2] n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
taobaogooglecodercto
마찬가지로 값 함수를 사용하여 해시의 모든 값을 읽을 수 있습니다. 구문 형식은 다음과 같습니다.
%HASH 값
이 함수는 모든 해시에 대한 모든 값의 배열을 반환합니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' => ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) @urls = 값 % 데이터 인쇄 " $urls [0] n " ; 인쇄 " $urls [1] n " ; 인쇄 " $urls [2] n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
taobao.comcodercto.comgoogle.com
요소가 존재하는지 확인
해시에 존재하지 않는 키/값 쌍을 읽으면 정의되지 않은 값이 반환되고 실행 중에 경고가 나타납니다.
이러한 상황을 피하기 위해, 존재 함수를 사용하여 키가 존재하는지 확인하고 존재하는 경우 이를 읽을 수 있습니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' => ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) if ( 존재합니다 ( $data { ' 페이스북 ' } ) ) { 인쇄 " 페이스북의 URL은 $data {'facebook'} n " ; 또 다른 { 인쇄 " 페이스북 키가 존재하지 않습니다 . n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
페이스북 키가 존재하지 않습니다
위 코드에서는 IF...ELSE 문을 사용했는데, 이에 대해서는 다음 장에서 자세히 소개하겠습니다.
해시 크기 가져오기
해시 크기는 요소 수입니다. 먼저 키 또는 값의 모든 요소 배열을 가져온 다음 배열 요소 수를 계산하여 해시 크기를 얻을 수 있습니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' => ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) @keys = 키 %데이터 ; $ size = @keys ; " 1 - 해시 크기: $ size n " @values = 값 %데이터 ; $ size = @values ; " 2 - 해시 크기: $size n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
1 - 해시 크기: 32 - 해시 크기: 3
해시에서 요소 추가 또는 제거
키/값 쌍 추가는 간단한 할당을 통해 수행할 수 있습니다. 하지만 해시 요소를 삭제하려면 삭제 기능을 사용해야 합니다.
예
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' => ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) @keys = 키 %데이터 ; $ size = @keys ; " 1 - 해시 크기: $size n " # 요소 추가 $data { ' 페이스 북 ' } = ' facebook.com ' @keys = 키 %데이터 ; $ size = @keys ; " 2 - 해시 크기: $size n " # 해시에서 요소 제거 ; 삭제 $ data { ' 타오바오 ' } @keys = 키 %데이터 ; $ size = @keys ; " 3 - 해시 크기: $size n " ; 위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
1 - 해시 크기: 32 - 해시 크기: 43 - 해시 크기: 3