1. ホーム
  2. スクリプト・コラム
  3. パール

Perlのハッシュテーブルの使い方を説明する

2022-01-30 08:32:10

今回は、Perlのハッシュテーブルの概念に焦点を当てます。Perl言語や他のプログラミング言語にはそれぞれ特徴があるので、実は構造体であるPerlのハッシュテーブルの概念についてお伝えします。

Perlのハッシュテーブル
Perlのハッシュテーブルは構造体です。
キー/値で指定します。
Perlのハッシュテーブルの要素にアクセスする
Perlのハッシュテーブル{$some_key}です。
Perlのハッシュテーブルの名前を決めるときは、このように考えるとよいでしょう。Perlのハッシュテーブルの要素は、名前とキーの間にforを付けてリンクすることができます。例えば、thefamily_nameforfredisflintstoneのような感じです。

Perl のハッシュテーブル全体を参照する場合は、パーセント記号 (%) をプレフィックスとして使用します。

コピーコード コードは以下の通りです。

#! /bin/perl   
usewarnings;  
usestrict;  
my$person;  
my%family_name;   
$family_name{"fred"}="flintstone";  
$family_name{"barney"}="rubble";  
foreach$person(qw<barneyfred>){  
print"I'veheardof$person$family_name{$person}. \n";  
}  
my%some_hash=("foo",35,"bar",12.4,25,"hello","wilma",1.72e30,"betty","bye\n ");  
my@array_array=%some_hash=;  
print"@array_array\n"; 

大きな矢印記号(=>)の付いたハッシュアサインメソッド

コピーコード コードは以下の通りです。

my%last_name=(  
"fred"=>"flintstion",  
"dino"=>undef,  
"barney"=>"rubble",  
"betty"=>"rubble",  
); 

Perl のハッシュテーブルに要素がない場合は、空リストが返されます。

コピーコード コードは以下の通りです。

my@k=keys%last_name;  
my@v=values%last_name;  
my$count=keys%last_name;#scalar-producing,key/valuepairs  
print"thekeyare@k.\n";  
print"thevalueare@v.\n";  
print"thecountare$count.\n"; 

各機能

Perlのハッシュテーブルで各要素を繰り返し処理したい場合、一般的な方法はeach関数を使うことで、キーと値のペアの要素を返します。同じPerlのハッシュテーブル関数が一度繰り返されると、すべての要素にアクセスするまで、次のキーと値のペアが返されます。

コピーコード コードは以下の通りです。

my$key;  
my$value;   
while(($key,$value)=each%last_name){   
#foreach(($key,$value)=each%last_name){  
print"$key=>$value.\n";  
}  

なお、2つのループの結果が異なる理由は、異なるメカニズムで設計されているためです。
コピーコード コードは以下の通りです。

foreach$key(sortkeys%last_name){  
$value=$last_name{$key};  
print"$key=>$value.\n";  
print"$key=>$last_name{$key}. \n";  
}