ペア

ペアはキーと値のペアを扱うデータ型です。ハッシュ配列に似ていますが、保持できるデータは1組だけになっています。

ペアの生成

"key" => "value"のように=>を使ってペアを生成します。

my $pair = "foo" => "bar";

また、:key<value>という別記法もあります。

my $pair = :foo<bar>;

単に:keyと書いた場合は:key<1>と書くのと同じことになります。ただし、単体で使う場合は括弧で囲む必要があります。

my $pair = (:foo);
my $pair = ("foo" => 1); # 同じこと

ペアの入れ子

ペアの値としてペアを指定することで入れ子構造になります。その場合は括弧を使って優先順位を明示する必要があります。

my $pair = "foo" => ("bar" => "baz");
say $pair.value.key;
say $pair.value.value;

my $pair = ("foo" => "bar") => "baz";
say $pair.key.key;
say $pair.key.value;

ハッシュ配列からペアを生成

.pairsメソッドを使ってハッシュ配列をペアに変換できます。

my %hash  = ('foo' => 'bar');
my @pairs = %hash.pairs();

ペアの値の変更

.key.valueに値を格納することで値を変更することができます。

my $pair = ("foo" => "bar");
$pair.value = "hoge";
$pair.key   = "fuga";

メソッド

$pair.key()
key($pair)

ペアのキーを返します。

$pair.value()
value($pair)

ペアの値を返します。

$pair.kv()
kv($pair)

キーと値をリストとして返します。

my ($key, $value) = $pair.kv();

SEE ALSO

ハッシュ配列