The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More;

BEGIN { eval { require MooseX::Role::Parameterized } or plan skip_all => 'This test needs MooseX::Role::Parameterized' }


package Foo;
use MooseX::Role::Parameterized -traits => 'MooseX::MethodAttributes::Role::Meta::Role';

parameter foo => (
    isa => "Str",
);

role {
    my $p = shift;

    method test_foo => sub {
        my ($self, $should_be) = @_;
        package main;
        is $p->foo, $should_be, 'parameter is correct';
    };
};

package UseFoo;
use Moose;

with Foo => { foo => 23 };

package main;

UseFoo->new->test_foo(23);

done_testing;