sub new {
my $class = shift;
my $self = {
- inc => [ sort { length $b cmp length $a } grep m#^/#, @INC ],
+ inc => [
+ sort { length $b cmp length $a } grep m#^/#,
+ map { y#/#/#s; s#/$##; $_ } @INC
+ ],
provide => {},
- safe => Safe->new,
+ safe => Safe->new,
@_,
};
bless $self, $class;
# if the file lives under @INC, we can
# obtain the package name from it's path
for (@{ $self->{inc} }) {
- if ($file =~ m#\Q$_\E/?(.+)$#) { # we can't use ^ here
+ if ($file =~ m#\Q$_\E/(.+)$#) { # we can't use ^ here
$package = $1;
if ($package !~ s/\.pm$//) { # it's a *.pl
( $version = $self->{safe}->reval($_) ) =~ s/^\s+|alpha|beta|\s+$//g;
if ( defined $version
&& length $version
- && $version =~ /[^\d\._abcdefgh]/ )
+ && ($version =~ /[^\d\._abcdefgh]/
+ || $version =~ /^[^\d]*$/ ))
{
warn "$0: weird version number in $file: [$version]\n";
$version = '';