펄 시작하기login
펄 시작하기
작가:php.cn  업데이트 시간:2022-04-14 16:05:12

펄 해시


해시는 키/값 쌍의 모음입니다.

Perl의 해시 변수는 백분율 기호(%)로 시작합니다.

액세스 해시 요소 형식: ${key}.

다음은 간단한 해시 예입니다.

#!/usr/bin/perl

%data = ('google', 'google.com', 'php', 'php.cn', 'taobao', 'taobao.com');

print "$data{'google'} = $data{'google'}\n";
print "$data{'php'} = $data{'php'}\n";
print "$data{'taobao'} = $data{'taobao'}\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.


Create Ha Hash

는 다음 두 가지 방법으로 생성할 수 있습니다.

1. 각 키에

$data{'google'} = 'google.com';
$data{'php'} = 'php.cn';
$data{'taobao'} = 'taobao.com';

값을 설정합니다. 2. 목록을 통해

목록을 설정합니다. 첫 번째 요소는 키이고 두 번째 요소는 값입니다.

%data = ('google', 'google.com', 'php', 'php.cn', 'taobao', 'taobao.com');

=> 기호를 사용하여 키/값을 설정할 수도 있습니다.

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

다음 예는 위 예의 변형입니다. 를 사용하세요. - 따옴표 대신:

%data = (-google=>'google.com', -php=>'php.cn', -taobao=>'taobao.com');

이 방법을 사용하면 키에 공백을 사용할 수 없습니다. 요소를 읽는 방법은 다음과 같습니다:

$val = %data{-google}
$val = %data{-php}

해시 요소에 액세스

액세스 해시 요소 형식: ${key}, 예시는 다음과 같습니다:

#!/usr/bin/perl

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

print "$data{'google'} = $data{'google'}\n";
print "$data{'php'} = $data{'php'}\n";
print "$data{'taobao'} = $data{'taobao'}\n";

위 프로그램을 실행하면, 출력 결과는 다음과 같습니다:


해시 값 읽기 ​​

배열처럼 해시에서 값을 추출할 수 있습니다.

해시 값은 배열 구문 형식(@{key1,key2})으로 추출됩니다.

#!/uer/bin/perl


%data = (-taobao => 45, -google => 30, -php => 40);

@array = @data{-taobao, -php};

print "Array : @array\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

Array : 45 40

해시 키와 값 읽기

모든 키 읽기

We You keys 함수를 사용하여 해시의 모든 키를 읽을 수 있습니다. 구문 형식은 다음과 같습니다.

keys %HASH

이 함수는 모든 해시의 모든 키 배열을 반환합니다.

#!/usr/bin/perl 

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

@names = keys %data;

print "$names[0]\n";
print "$names[1]\n";
print "$names[2]\n";

는 위 프로그램을 실행하고 출력 결과는 다음과 같습니다.

taobao
google
php

마찬가지로 values 함수를 사용하여 해시의 모든 값을 읽을 수 있습니다. 구문 형식은 다음과 같습니다.

values %HASH

이 함수는 모든 해시의 모든 값 배열을 반환합니다.

#!/usr/bin/perl 

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

@urls = values %data;

print "$urls[0]\n";
print "$urls[1]\n";
print "$urls[2]\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

taobao.com
php.cn
google.com

요소가 존재하는지 검색

존재하지 않는 키/값 쌍을 읽는 경우 해시는 정의되지 않은 값을 반환하고 실행 시 경고가 표시됩니다.

이런 상황을 피하기 위해 exists 함수를 사용하여 키가 존재하는지 확인할 수 있습니다.

#!/usr/bin/perl

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

if( exists($data{'facebook'} ) ){
   print "facebook 的网址为 $data{'facebook'} \n";
}
else
{
   print "facebook 键不存在\n";
}

위 프로그램을 실행하세요. 출력 결과는 다음과 같습니다.

facebook 键不存

위 코드에서는 IF...ELSE 문을 사용했는데, 이에 대해서는 다음 장에서 자세히 소개하겠습니다.


해시 크기 가져오기

해시 크기는 요소의 수입니다. 먼저 키 또는 값의 모든 요소 배열을 가져온 다음 숫자를 계산하여 해시를 얻을 수 있습니다. 배열 요소의 크기는 간단한 할당을 통해 수행됩니다. 하지만 해시 요소를 삭제하려면

delete

기능을 사용해야 합니다.

#!/usr/bin/perl

%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');

@keys = keys %data;
$size = @keys;
print "1 - 哈希大小: $size\n";

@values = values %data;
$size = @values;
print "2 - 哈希大小: $size\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

1 - 哈希大小: 3
2 - 哈希大小: 3