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";
}
関連
-
Perl学習チュートリアル - シングルラインコマンドの説明
-
Perlの配列ソート学習ノート
-
python urllibでのエンコード処理例
-
Perlの時間処理関数 使い方入門
-
日付と時刻を操作するためのPerlのCPANモジュール10個の紹介
-
perlでサブルーチンの引数を参照(渡す)する2つの方法
-
[解決済み] ディレクトリで終わるパスに対してcatfileを使用した場合の危険性?
-
[解決済み] Perl で bash コマンドを使用して文字列をエコーするにはどうすればよいですか?
-
[解決済み] Hashに重複したキーや値を持たせることができるか
-
[解決済み] MOSSスクリプトはどのように使うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PerlでローカルタイムからUNIXタイムスタンプに変換する方法
-
Perlは先頭と末尾の空白を削除します(左右の空白文字、空白文字を削除します)。
-
Gmailの添付ファイルをPerlで一括ダウンロードするコード
-
Perl 変数の使い方を説明するための Perl 構文
-
perlの$aおよび$bの紹介
-
PerlモジュールData::Dumperを使用した共有例です。
-
perlのour-my-localスコープ宣言の紹介
-
Perl で File::Lockfile を使用して、スクリプトの単一インスタンスを確保する
-
[解決済み] strict pragma のもとで変数を NULL に設定するにはどうすればよいですか?
-
[解決済み] Perlでディレクトリ一覧を取得するには?[重複している]。