]> TLD Linux GIT Repositories - packages/rpm.git/blobdiff - perl.prov
- release down to 2
[packages/rpm.git] / perl.prov
index 8f1a79d599aacdeb249789ebe93504ebc62aa106..6e98f9a4ae03d8f6d931ad221c3a90974a4cfb87 100644 (file)
--- a/perl.prov
+++ b/perl.prov
@@ -2,7 +2,7 @@
 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).
@@ -92,20 +92,22 @@ sub process_file {
 
                # 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 = '';