title: Why does smartmatch against keys %h fail and give an "Argument isn't numeric" warning?
body: <p>In the following code, why does the first smartmatch fail to match and give the warning <code>Argument "two" isn't numeric in smart match</code>, while the second smartmatch works as expected (it matches)?</p>
  
  <pre><code>use strict;
  use warnings;
  use feature 'say';
  
  my %h = ("one" =&gt; "un", "two" =&gt; "deux");
  my $v = "two";
  my @keys_h = keys %h;
  
  say "matches first form"  if $v ~~ keys %h; # warning, doesn't match
  say "matches second form" if $v ~~ @keys_h; # no warning, matches
  </code></pre>
  
  <p>I realize I could just use</p>
  
  <pre><code>$v ~~ %h
  </code></pre>
  
  <p>but I'd like to know why the first smartmatch doesn't work as I expect it to. I'm using Perl 5.10.1.</p>