<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Below find what I was originally going to post from the docs. I
wrote a sample program that actually explains the concept better
than the docs, at least for me. :)<br>
<br>
<b>hash_value_type</b><b>.p6:</b><br>
<hr size="2" width="100%"><tt>#!/usr/bin/env perl6<br>
<br>
use v6;<br>
<br>
my %hash = foo => 'bar', baz => 'quux';<br>
<br>
say %hash.WHAT;<br>
say %hash<foo>.WHAT;</tt><br>
<hr size="2" width="100%"><b>Output:</b><br>
<hr size="2" width="100%"><tt>$ ./hash_value_type.p6 <br>
(Hash)<br>
(Str)<br>
</tt>
<hr size="2" width="100%"><br>
So, what that tells me is that adverbs are needed because you
wouldn't have the correct method (exists, delete, etc.) on the value
that the hash access returns (in this case Str). I hope that makes
some sort of sense. :)<br>
<br>
<hr size="2" width="100%"><br>
This is what I found on adverbs at this point:<br>
<br>
<ul>
<li>
<p><em>Key/value-slicing</em></p>
<div class="highlight">
<pre><span class="nb">say</span> <span class="nb">join</span> <span class="s">','</span>, <span class="nv">%calories</span>{<span class="s">'pear'</span>, <span class="s">'plum'</span>}; <span class="c-Singleline"># Perl 5</span>
<span class="nb">say</span> <span class="nb">join</span> <span class="s">','</span>, <span class="nv">%calories</span>{<span class="s">'pear'</span>, <span class="s">'plum'</span>}:<span class="n">kv</span>; <span class="c-Singleline"># Perl 6 - use :kv adverb</span>
<span class="nb">say</span> <span class="nb">join</span> <span class="s">','</span>, <span class="nv">%calories<pear plum></span>:<span class="n">kv</span>; <span class="c-Singleline"># Perl 6 (prettier version)</span>
</pre>
</div>
</li>
</ul>
<p>Also note that the subscripting braces are now a normal
postcircumfix operator rather than a special syntactic form, and
thus <a href="http://doc.perl6.org/language/5to6-nutshell#exists">checking
for existence of keys</a> and <a
href="http://doc.perl6.org/language/5to6-nutshell#delete">removing
keys</a> is done with adverbs.<br>
</p>
<h3 id="delete"><a class="u"
href="http://doc.perl6.org/language/5to6-nutshell#___top"
title="go to top of document"><code>delete</code></a></h3>
<p>Turned into an adverb of the <a
href="http://doc.perl6.org/language/5to6-nutshell#%7B%7D_Hash_indexing%2Fslicing"><code>{}</code>
hash subscripting</a> and <a
href="http://doc.perl6.org/language/5to6-nutshell#%5B%5D_Array_indexing%2Fslicing"><code>[]</code>
array subscripting</a> operators.</p>
<div class="highlight">
<pre><span class="k">my</span> <span class="nv">$deleted_value</span> = <span class="nb">delete</span> <span class="nv">$hash</span>{<span class="nv">$key</span>}; <span class="c-Singleline"># Perl 5</span>
<span class="k">my</span> <span class="nv">$deleted_value</span> = <span class="nv">%hash</span>{<span class="nv">$key</span>}:<span class="n">delete</span>; <span class="c-Singleline"># Perl 6 - use :delete adverb</span>
<span class="k">my</span> <span class="nv">$deleted_value</span> = <span class="nb">delete</span> <span class="nv">$array</span>[<span class="nv">$i</span>]; <span class="c-Singleline"># Perl 5</span>
<span class="k">my</span> <span class="nv">$deleted_value</span> = <span class="nv">@array</span>[<span class="nv">$i</span>]:<span class="n">delete</span>; <span class="c-Singleline"># Perl 6 - use :delete adverb</span>
</pre>
</div>
<h3 id="exists"><a class="u"
href="http://doc.perl6.org/language/5to6-nutshell#___top"
title="go to top of document"><code>exists</code></a></h3>
<p>Turned into an adverb of the <a
href="http://doc.perl6.org/language/5to6-nutshell#%7B%7D_Hash_indexing%2Fslicing"><code>{}</code>
hash subscripting</a> and <a
href="http://doc.perl6.org/language/5to6-nutshell#%5B%5D_Array_indexing%2Fslicing"><code>[]</code>
array subscripting</a> operators.</p>
<div class="highlight">
<pre><span class="nb">say</span> <span class="s">"element exists"</span> <span class="k">if</span> <span class="nb">exists</span> <span class="nv">$hash</span>{<span class="nv">$key</span>}; <span class="c-Singleline"># Perl 5</span>
<span class="nb">say</span> <span class="s">"element exists"</span> <span class="k">if</span> <span class="nv">%hash</span>{<span class="nv">$key</span>}:<span class="n">exists</span>; <span class="c-Singleline"># Perl 6 - use :exists adverb</span>
<span class="nb">say</span> <span class="s">"element exists"</span> <span class="k">if</span> <span class="nb">exists</span> <span class="nv">$array</span>[<span class="nv">$i</span>]; <span class="c-Singleline"># Perl 5</span>
<span class="nb">say</span> <span class="s">"element exists"</span> <span class="k">if</span> <span class="nv">@array</span>[<span class="nv">$i</span>]:<span class="n">exists</span>; <span class="c-Singleline"># Perl 6 - use :exists adverb</span>
</pre>
</div>
<br>
</body>
</html>