routine kv

Documentation for routine kv assembled from the following types:

role Baggy

From Baggy

(Baggy) method kv

Defined as:

method kv(Baggy:D: --> Seq:D)

Returns a Seq of keys and values interleaved.

my $breakfast = bag <eggs spam spam spam>;
say $breakfast.kv;                                # OUTPUT: «(spam 3 eggs 1)␤» 
my $n = ("a" => 5"b" => 2"a" => 1).BagHash;
say $n.kv;                                        # OUTPUT: «(a 6 b 2)␤»

role Setty

From Setty

(Setty) method kv

Defined as:

multi method kv(Setty:D: --> Seq:D)

Returns a Seq of the set's elements and True values interleaved.

my $s =;
say $s.kv;                                        # OUTPUT: «(3 True 1 True 2 True)␤»

role Enumeration

From Enumeration

(Enumeration) method kv

Defined as:

multi method kv(::?CLASS:D:)

Returns a list with key and value of the enum-pair.

say g.kv# OUTPUT: «(g 1)␤» 

class Any

From Any

(Any) method kv

Defined as:

multi method kv(Any:U:)
multi method kv(Any:D:)
multi sub    kv($x)

Returns an empty List if the invocant is a type object:

Sub.kv.say ;# OUTPUT: «()␤»

It calls list on the invocant for value objects and returns the result of List.kv on it as a list where keys and values will be ordered and contiguous

<1 2 3>.kv.say# OUTPUT: «(0 1 1 2 2 3)␤»

In the case of Positionals, the indices will be considered keys.

class Map

From Map

(Map) method kv

Defined as:

method kv(Map:D: --> Seq:D)

Returns a Seq of keys and values interleaved.'a'1'b'2).kv  # (a 1 b 2)

class Pair

From Pair

(Pair) method kv

Defined as:

multi method kv(Pair:D: --> List:D)

Returns a two-element List with the key and value parts of Pair, in that order. This method is a special case of the same-named method on Hash, which returns all its entries as a list of keys and values.

my $p = (Perl => 6);
say $p.kv[0]; # OUTPUT: «Perl␤» 
say $p.kv[1]; # OUTPUT: «6␤»

class Capture

From Capture

(Capture) method kv

Defined as:

multi method kv(Capture:D: --> Seq:D)

Returns a Seq of alternating keys and values. The positional keys and values, if any, comes first followed by the named keys and values.

my $capture = \(23apples => (red => 2));
say $capture.kv;                                  # OUTPUT: «(0 2 1 3 apples red => 2)␤»

class List

From List

(List) routine kv

Defined as:

sub    kv($list --> Seq:D)
method kv(List:D: --> Seq:D)

Returns an interleaved sequence of indexes and values. For example

<a b c>.kv# (0 a 1 b 2 c)