ハッシュはキーと値のペアのコレクションです。
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 " ; " $データ{'タオバオ'} = $データ{'タオバオ'} n " ;上記のプログラムを実行すると、出力結果は次のようになります。
ハッシュを作成する
ハッシュを作成するには 2 つの方法があります。
1. 各キーの値を設定する
$data{'google'} = 'google.com';$data{'codercto'} = 'codercto.com';$data{'taobao'} = 'taobao.com';
2. リストによる設定
リストの最初の要素はキー、2 番目の要素は値です。
%data = ('google', 'google.com', 'codercto', 'codercto.com', 'taobao', 'taobao.com');
=>記号を使用してキー/値を設定することもできます。
%data = ('google'=>'google.com', 'codercto'=>'codercto.com', 'taobao'=>'taabao.com');
次の例は、引用符の代わりに-を使用した上記の例の変形です。
%data = (-google=>'google.com', -codercto=>'codercto.com', -taabao=>'taabao.com');
このように、キーにスペースを含めることはできません。要素を読み取る方法は次のとおりです。
$val = $data{-google}$val = $data{-codercto}
ハッシュ要素にアクセスする
アクセス ハッシュ要素の形式: ${key} 、例は次のとおりです。
例
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , 'タオバオ' => 'タオバオ.com ' ) ; " $ data{'google'} = $ data {'google'} n " ; " $ data {'codercto'} = $data {'codercto'} n " ; " $データ{'タオバオ'} = $データ{'タオバオ'} n " ;上記のプログラムを実行すると、出力結果は次のようになります。
ハッシュ値を読み取る
配列と同じようにハッシュから値を抽出できます。
ハッシュ値は配列構文形式@{key1,key2}に抽出されます。
例
#!/uer/bin/perl %data = ( -タオバオ=> 45 、 -グーグル=> 30 、 - codercto => 40 ) ; @array = @data { -タオバオ, - codercto } ; "配列 : @array n " ;上記のプログラムを実行すると、出力結果は次のようになります。
配列: 45 40
ハッシュキーと値を読み取る
すべてのキーを読み取る
ハッシュのすべてのキーを読み取るには、 keys関数を使用できます。構文は次のとおりです。
キー %HASH
この関数は、すべてのハッシュのすべてのキーの配列を返します。
例
#!/usr/bin/perl %data = ( ' google ' = > ' google.com ' , ' codercto ' = > ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) ; %データ; " $names [ 0] n " ; " $names [ 1] n " ; " $names [2] n " ;上記のプログラムを実行すると、出力結果は次のようになります。
タオバオグーグルコードクト
同様に、 values関数を使用してハッシュのすべての値を読み取ることができます。構文形式は次のとおりです。
値%HASH
この関数は、すべてのハッシュのすべての値の配列を返します。
例
#!/usr/bin/perl % data = ( ' google ' => ' google.com ' 、 ' codercto ' = > ' codercto.com ' 、 ' taobao ' = > ' taobao.com ' ) ; %データ; " $urls [0] n " ; " $urls [1] n " ; " $urls [2] n " ;上記のプログラムを実行すると、出力結果は次のようになります。
taobao.comcodercto.comgoogle.com
要素が存在するかどうかを確認する
ハッシュに存在しないキーと値のペアを読み取ると、未定義の値が返され、実行中に警告が表示されます。
この状況を回避するには、 exists関数を使用してキーが存在するかどうかを判断し、存在する場合はそれを読み取ることができます。
例
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , ' taobao ' = > ' taobao.com ' ) ;存在します( $data { ' Facebook ' } ) ) { 印刷する" Facebook の URL は$data {
' facebook'} n " }それ以外{ 印刷する" Facebook キーが存在しません n " ;上記のプログラムを実行すると、出力結果は次のようになります。
Facebook キーが存在しません
上記のコードでは、 IF...ELSEステートメントを使用しました。これについては、次の章で詳しく説明します。
ハッシュサイズを取得する
ハッシュ サイズは要素の数です。まずキーまたは値の要素配列を取得し、次に配列要素の数を計算することでハッシュ サイズを取得できます。
例
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , 'タオバオ' = > 'タオバオ.com ' ) ; %data ; $ size = @keys ; " 1 - ハッシュ サイズ: $size n " ; @values =値%data ; $ size = @values ; " 2 - ハッシュ サイズ: $size n " ;上記のプログラムを実行すると、出力結果は次のようになります。
1 - ハッシュ サイズ: 32 - ハッシュ サイズ: 3
ハッシュに要素を追加または削除する
キーと値のペアの追加は、単純な割り当てによって実行できます。ただし、ハッシュ要素を削除するには、 delete関数を使用する必要があります。
例
#!/usr/bin/perl %data = ( ' google ' => ' google.com ' , ' codercto ' = > ' codercto.com ' , 'タオバオ' = > 'タオバオ.com ' ) ; %data ; $ size = @keys ; " 1 - ハッシュ サイズ: $size n " ; # 要素を追加します$ data { ' facebook ' } = ' facebook.com ' ; %data ; $ size = @keys ; " 2 - ハッシュ サイズ: $size n " ; # ハッシュから要素を削除します消去$data { 'タオバオ' } ; @keys =キー%data ; $ size = @keys ; " 3 - ハッシュ サイズ: $size n " ;上記のプログラムを実行すると、出力結果は次のようになります。
1 - ハッシュ サイズ: 32 - ハッシュ サイズ: 43 - ハッシュ サイズ: 3