--- /dev/null
+--- rpm-4.0/scripts/perl.req Wed Jul 5 14:26:37 2000
++++ rpm-4.0.new/scripts/perl.req Wed Nov 15 21:31:03 2000
+@@ -82,6 +82,53 @@
+ exit 0;
+
+
++sub is_perlfile {
++ my $file = shift;
++ my $fh = shift;
++
++ my $fl = <$fh>;
++
++ my $is_perl = 0;
++
++ my $nw = 0;
++
++ if ($file =~ /\.(so|ph|h|html|pod|gz|bz2|png|gif|jpg|xpm|a|patch|o|mo)$/) {
++ $is_perl = 0;
++
++ # .al, .pl, .pm and .plx (perl-Font-TTF contains *.plx files)
++ } elsif ($file =~ /\.p[lm]x?$/ || $file =~ /\.al$/) {
++ $is_perl = 1;
++ #print STDERR "$file PERL by ext\n";
++ } elsif ($fl =~ m|bin/perl| or $fl =~ m|env\s+perl| or $fl =~ m|exec\s+perl|) {
++ $is_perl = 1;
++ #print STDERR "$file PERL by perl\n";
++ } elsif ($fl =~ m|bin/sh|) {
++ while (<$fh>) {
++ if (/eval/ && /perl/) {
++ $is_perl = 1;
++ last;
++ }
++ $nw++ if (/^\s*BEGIN/);
++ $nw++ if (/^\s*sub\s+/);
++ $nw++ if (/^\s*package\s+/);
++ $nw++ if (/^\s*use\s+strict\s+;/);
++ $nw++ if (/^\s*use\s+vars\s*qw/);
++ last if ($. > 30);
++ }
++ }
++
++ seek($fh, 0, 0);
++
++ $is_perl = 1 if ($nw > 1); # propably perl file
++
++ #if (!$is_perl) {
++ # print STDERR "NOPERL $file\n";
++ # return 0;
++ #}
++ #print STDERR "PERL $file\n" if ($is_perl);
++ return $is_perl;
++}
++
+
+ sub process_file {
+
+@@ -90,6 +137,8 @@
+
+ open(FILE, "<$file")||
+ die("$0: Could not open file: '$file' : $!\n");
++
++ return if (!is_perlfile($file, \*FILE));
+
+ while (<FILE>) {
+
+@@ -209,6 +258,10 @@
+ # if the module name starts in a dot it is not a module name.
+
+ ($module =~ m/^\./) && next;
++
++ # name starts in a non alphanumeric character it is not a module
++ # name.
++ ($module =~ m/^\W/) && next;
+
+ # if the module ends with .pm strip it to leave only basename.
+