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.
tutorial/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
tutorial/hash/loop_over_hash.p6.out
Bar 456 Foo 123
Published on 2012-01-01