Fixed package dependencies (missing the web request main package). apache20
authorshort <>
Wed, 19 Oct 2005 12:57:02 +0000 (12:57 +0000)
committershort <>
Wed, 19 Oct 2005 12:57:02 +0000 (12:57 +0000)
Web.pm

diff --git a/Web.pm b/Web.pm
index 48ad926..2b08495 100644 (file)
--- a/Web.pm
+++ b/Web.pm
@@ -24,7 +24,7 @@ use strict;
 use warnings;
 
 use Exporter;
-sub Wrequire($);
+sub Wrequire($%);
 sub Wuse($@);
 our $W;
 our @EXPORT=qw(
@@ -49,9 +49,10 @@ BEGIN
        use Carp qw(cluck confess);
        $W->{"__My::Web_init"}=1;
 
-       sub Wrequire ($)
+       # $args{"first"}=1
+       sub Wrequire ($%)
        {
-       my($file)=@_;
+       my($file,%args)=@_;
 
 #              print STDERR "Wrequire $file\n";
                $file=~s#/#::#g;
@@ -70,7 +71,12 @@ BEGIN
                                next if $packages_used_hash{$caller}{$target}++;
                                cluck "Appending to the '_done' package list: caller=$caller,target=$target"
                                                if $packages_used_hash{$caller}{"_done"};
-                               push @{$packages_used_array{$caller}},$target;
+                               if ($args{"first"}) {
+                                       unshift @{$packages_used_array{$caller}},$target;
+                                       }
+                               else {
+                                       push @{$packages_used_array{$caller}},$target;
+                                       }
                                }
                        }
                eval { CORE::require "$file"; } or confess $@;
@@ -163,6 +169,8 @@ my($class,%args)=@_;
        # $Apache2::Registry::curstash is no longer supported.
        do { cluck "No $_" if !$W->{$_}; } for "__PACKAGE__";
        exit_hook_start();
+       # Package dependencies tracking only:
+       Wrequire $W->{"__PACKAGE__"},"first"=>1;
 
        do { $W->{$_}=0  if !defined $W->{$_}; } for "detect_ent";
        do { $W->{$_}=0  if !defined $W->{$_}; } for "detect_js";