{
my
$loader
= Module::Implementation::build_loader_sub(
implementations
=> [
'Impl1'
,
'Impl2'
],
symbols
=> [
'return_42'
],
);
::is(
$loader
->(),
'T::Impl1'
,
'loader return loaded package name'
);
}
{
ok( T->can(
'return_42'
),
'T package has a return_42 sub'
);
ok(
!T->can(
'return_package'
),
'T package does not have return_package sub - only copied requested symbols'
);
is( T::return_42(), 42,
'T::return_42 work as expected'
);
is(
Module::Implementation::implementation_for(
'T'
),
'Impl1'
,
'T::_implementation returns default implementation'
);
}
done_testing();