require Devel::GlobalDestruction;
Devel::GlobalDestruction->import("in_global_destruction");
1;
- } or *in_global_destruction = sub () { '' };
+ } or *in_global_destruction = sub () { !1 };
}
: sub () { 1 };
}
-our $VERSION = '0.64_01';
+our $VERSION = '0.64_06';
+our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
local $@;
eval {
require XSLoader;
- __PACKAGE__->XSLoader::load($VERSION);
+ __PACKAGE__->XSLoader::load($XS_VERSION);
};
$@;
};
sub load_class {
my $class = shift;
- if (ref($class) || !defined($class) || !length($class)) {
+ if ( ref($class)
+ || !defined($class)
+ || !length($class)
+ || $class !~ /^\w+(?::\w+)*$/ ) {
my $display = defined($class) ? $class : 'undef';
confess "Invalid class name ($display)";
}
# if the class is not already loaded in the symbol table..
unless (is_class_loaded($class)) {
# require it
- my $file = $class . '.pm';
- $file =~ s{::}{/}g;
- my $e = do { local $@; eval { require($file) }; $@ };
+ my $e = do { local $@; eval "require $class"; $@ };
confess "Could not load class ($class) because : $e" if $e;
}