use strict;
# perl.prov - find information about perl modules for RPM
-# $Id: perl.prov,v 1.10 2004/05/05 17:13:54 radek Exp $
+# $Id$
# It's questionable if we should provide perl(Foo::Bar) for modules
# from outside @INC (possibly shipped with some applications).
# search for the package name
if (
- !defined $package
- && ( my ($pack) = m/^\s*(?:\{\s*)?package\s+([_:a-zA-Z0-9]+?):*\s*;/ )
+ (!defined $package || !defined $version)
+ && ( my ($pack, $ver) = m/^\s*(?:\{\s*)?package\s+([_:a-zA-Z0-9]+?)\s*(?:v?([0-9_.]+)\s*)?[;{]/)
&& $1 ne 'main'
&& match_the_path( $file, $1 )
)
{
$package = $pack;
+ $version = $ver;
}
if ( !defined $version && /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/ ) {
( $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 = '';