The same way we can loop over keys of a hash - after fetching them using the "keys" function.
The declaration of hashes in Perl 6 is similar to that in Perl 5 but when access individual elements in the hash it now keeps the % prefix. Thus the value of the key "Foo" will be %phone{"Foo"}. Similarly if $name contains "Foo" we can use the %phone{$name} expression to get back the relevant value.
As mentioned earlier the string interpolation of hashes requires curly braces around the statement.
examples/hash/loop_over_hash.p6#!/usr/bin/env perl6
use v6;
my %phone =
"Foo" => 123,
"Bar" => 456,
;
for keys %phone -> $name {
say "$name %phone{$name}";
}
Output
examples/hash/loop_over_hash.p6.outBar 456 Foo 123