-#!/usr/bin/env perl
package Mouse::Util;
use strict;
use warnings;
use base qw/Exporter/;
use Carp;
-use Scalar::Util qw(blessed looks_like_number openhandle reftype weaken);
our @EXPORT_OK = qw(
- blessed looks_like_number openhandle reftype weaken
get_linear_isa
+ apply_all_roles
);
our %EXPORT_TAGS = (
all => \@EXPORT_OK,
BEGIN {
my $impl;
- if (\&mro::get_linear_isa) {
+ if ($] >= 5.009_005) {
+ require mro;
$impl = \&mro::get_linear_isa;
} else {
my $loaded = do {
local $SIG{__DIE__} = 'DEFAULT';
- eval "use MRO::Compat (); 1";
+ eval "require MRO::Compat; 1";
};
if ($loaded) {
$impl = \&mro::get_linear_isa;
$impl = $code;
}
}
+
no strict 'refs';
*{ __PACKAGE__ . '::get_linear_isa'} = $impl;
}
my $meta = Mouse::Meta::Class->initialize(shift);
my @roles;
+
+ # Basis of Data::OptList
my $max = scalar(@_);
for (my $i = 0; $i < $max ; $i++) {
if ($i + 1 < $max && ref($_[$i + 1])) {
=head3 get_linear_isa
-=head2 L<Scalar::Util>
-
-=head3 blessed
-
-=head3 looks_like_number
-
-=head3 reftype
-
-=head3 openhandle
-
-=head3 weaken
-
-C<weaken> I<must> be implemented in XS. If the user tries to use C<weaken>
-without L<Scalar::Util>, an error is thrown.
-
-=head2 Test::Exception
-
-=head3 throws_ok
-
-=head3 lives_ok
-
=cut