<ul>
<li><strong>Declarative</strong> OO sugar</li>
<li>Introspectable</li>
- <li>Extensible (188 MooseX::* on CPAN)</li>
+ <li>Extensible (202 MooseX::* on CPAN)</li>
<li>Community approved (1200+ downstream dependents on CPAN)</li>
</ul>
</div>
</div>
<div class="slide">
- <h1>Delayed Conflict</h1>
-
- <pre><code>package SysadminAssassin;
-with 'Killer';</code></pre>
-
- <ul>
- <li><code>SysadminAssassin</code> must implement its own <code>execute</code></li>
- <li>But loading the <code>Killer</code> role by itself does not cause an error</li>
- </ul>
-</div>
-
-<div class="slide">
<h1>Roles as Interfaces</h1>
<ul>
<div class="slide">
<h1>Coercion Examples</h1>
- <pre><code>coerce 'ArrayRef[Int]',
+ <pre><code># BAD CODE - DO NOT COPY
+coerce 'ArrayRef[Int]',
from 'Int',
via { [ $_ ] };</code></pre>
use Moose;
has _favorite_numbers => (
traits => [ 'Array' ],
- is => 'bare',
isa => 'ArrayRef[Int]',
default => sub { [] },
init_arg => undef,
</div>
<div class="slide">
+ <h1>Questions?</h1>
+</div>
+
+<div class="slide">
<h1>Exercises</h1>
<pre># cd exercises