title: Perl 5.20 and the fate of smart matching and given-when
body: <p>I just installed Perl 5.18, and I get a lot of warnings like this,</p>
  <pre><code>given is experimental at .\[...].pl line [...].
  when is experimental at .\[...].pl line [...].
  Smartmatch is experimental at C:/strawberry/perl/site/lib/[...] line [...].
  </code></pre>
  <p>Looking into these warnings -- which I've never heard mentioned anywhere -- I was only able to find this in two places,</p>
  <ul>
  <li><a href="https://metacpan.org/module/RJBS/perl-5.18.0/pod/perldelta.pod" rel="nofollow noreferrer">perldelta for 5.18</a>, which only really mentions insofar as to say that the feature has been downgraded to <em>experimental</em>?</li>
  <li><a href="http://www.nntp.perl.org/group/perl.perl5.porters/2013/03/msg200559.html" rel="nofollow noreferrer">this nntp.perl.org post</a></li>
  </ul>
  <p>The Perl Delta still does the most to give mention as to what's happening with those features. It's halfway down buried in the pod,</p>
  <blockquote>
  <p>Smart match, added in v5.10.0 and significantly revised in v5.10.1, has been a regular point of complaint. Although there are a number of ways in which it is useful, it has also proven problematic and confusing for both users and implementors of Perl. There have been a number of proposals on how to best address the problem. It is clear that smartmatch is almost certainly either going to change or go away in the future. Relying on its current behavior is not recommended. Warnings will now be issued when the parser sees ~~, given, or when.</p>
  </blockquote>
  <p>I'm confused at how the most significant change in Perl in the past 10 years could be pulled. I've started using <code>given</code>, <code>when</code>, and <code>smartmatch</code> all over the place. Is there any more information about these futures? How is anyone finding them &quot;confusing?&quot; How are these features likely to change? Is there a plan to implement these features with a module?</p>