ペアはキーと値のペアを扱うデータ型です。ハッシュ配列に似ていますが、保持できるデータは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();