Perl: ハッシュを扱う

ディクショナリです。
Perl ではハッシュまたは連想配列と言います。

Perl: hash.pl

use strict;
use warnings;

# ハッシュの生成
my %hash = ( age=>20, name=>"hoge", hobby=>["a", "b"] );

# 値の表示
print("hash{age}: $hash{age}\n");
print("hash{name}: $hash{name}\n");
print("hash{hobby}: $hash{hobby}\n");
print("hash{hobby}[0]: $hash{hobby}[0]\n");

# 値単位での設定
$hash{name} = "feb19";
print("hash{name}: $hash{name}\n");

# キーの一覧を配列にする。順番は前からとかいう保証はない
my @keys = keys(%hash);
print("keys: @keys\n");

# 値の一覧を配列にする。順番は前からとかいう保証はない
my @values = values(%hash);
print("values: @values\n");

# 指定のキーが存在するか
my $exists_name = exists($hash{name});
my $exists_gender = exists($hash{gender});
print("exists_name: $exists_name\n");
print("exists_gender: $exists_gender\n");

# キーを削除
my $delete_name = delete($hash{name});
print("delete_name: $delete_name\n");

# 全キー値の表示
foreach my $key ( keys( %hash ) ) {
    print "{key: $key, value: $hash{$key}}\n"
}

# %ENV 環境変数の値を取得する
#while (my ($key, $value) = each %ENV) {
#    print "$key=$value\n";
#}

出力:

hash{age}: 20
hash{name}: hoge
hash{hobby}: ARRAY(0x7f913b0070d0)
hash{hobby}[0]: a
hash{name}: feb19
keys: hobby name age
values: ARRAY(0x7f913b0070d0) feb19 20
exists_name: 1
exists_gender:
delete_name: feb19
{key: hobby, value: ARRAY(0x7f913b0070d0)}
{key: age, value: 20}