use warnings;
use Exporter;
-sub Wrequire($);
+sub Wrequire($%);
sub Wuse($@);
our $W;
our @EXPORT=qw(
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;
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 $@;
# $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";
$$_=0 if !defined $$_;
}
}
+ # Used only if: $W->{"http_safe"}
+ # but we would cause on different method(): Appending to the '_done' package list
+ Wrequire 'My::Hash::RecordKeys';
if ($W->{"http_safe"}) {
- Wrequire 'My::Hash::RecordKeys';
$W->{"headers_in_RecordKeys"}=My::Hash::RecordKeys->new($W->{"headers_in"});
$W->{"headers_in"}=$W->{"headers_in_RecordKeys"};
}
sub cache_start()
{
+ # Used only if: !$W->{"http_safe"}
+ # but we would cause on different method(): Appending to the '_done' package list
+ # &Wrequire it here even if it will not be later used; to be stable!
+ Wrequire 'My::Hash::RestrictTo';
if (!$W->{"http_safe"}) {
__PACKAGE__->_no_cache();
return;
}
{
- # &Wrequire it here even if it will not be later used; to be stable!
- Wrequire 'My::Hash::RestrictTo';
my %uri_args_hash=(
"method"=>$W->{"r"}->method(),
"uri"=>"http://".$W->{"web_hostname"}."/".$W->{"r"}->uri(),