X-Git-Url: http://git.jankratochvil.net/?p=MyWeb.git;a=blobdiff_plain;f=Web.pm;fp=Web.pm;h=ddd1f986a873eeb24d401ac2e91717918c146db0;hp=4b8d6cb4b9e79fccaaa8506b04746ca6683dedf9;hb=e82a35e2244b715644001955516b23248a5d9e6f;hpb=f90c21922844b8df3023441e3df8989548a76972 diff --git a/Web.pm b/Web.pm index 4b8d6cb..ddd1f98 100644 --- a/Web.pm +++ b/Web.pm @@ -24,10 +24,43 @@ use strict; use warnings; use Exporter; -our @EXPORT=qw(&require &a_href &a_href_cz &vskip &img $W &top_dir); +sub Wrequire ($); +sub Wuse ($@); +our $W; +our @EXPORT=qw(&Wrequire &Wuse &a_href &a_href_cz &vskip &img $W &top_dir); our @ISA=qw(Exporter); -use WebConfig; # for %WebConfig +BEGIN +{ + sub Wrequire ($) + { + my($file)=@_; + +# print STDERR "Wrequire $file\n"; + $file=~s#/#::#g; + $file=~s/[.]pm$//; + my $class=$file; + $file=~s#::#/#g; + $file.=".pm"; + my $aref=($W->{"packages_used"}{$Apache::Registry::curstash}||=[]); + push @$aref,$class + if !{ map(($_=>1),@$aref) }->{$class}; # Prevent duplicated entries. + CORE::require $file; + 1; # Otherwise 'require' would already file above. + } + + sub Wuse ($@) + { + my($file,@list)=@_; + +# print STDERR "Wuse $file\n"; + Wrequire $file; + $file->import(@list); + 1; + } +} + +BEGIN { Wuse 'WebConfig'; } # for %WebConfig require CGI; # for &escapeHTML require Image::Size; # for &imgsize use File::Basename; # &basename @@ -44,7 +77,7 @@ delete $ENV{"PERLLIB"}; delete $ENV{"LD_LIBRARY_PATH"}; -our $W; +#our $W; # $W->{"title"} # $W->{"head"} # $W->{"head_css"} @@ -61,7 +94,9 @@ sub init ($%) { my($class,%args)=@_; + my $packages_used_save=$W->{"packages_used"}; $W={ %WebConfig,%args }; # override %WebConfig settings + $W->{"packages_used"}=$packages_used_save; $W->{"__PACKAGE__"}||="Apache::ROOT".$Apache::Registry::curstash; @@ -134,22 +169,6 @@ sub top_dir () return $INC[0]; # fallback } -sub require ($) -{ -my($file)=@_; - - $file=~s#/#::#g; - $file=~s/[.]pm$//; - my $class=$file; - $file=~s#::#/#g; - $file.=".pm"; - my $aref=($W->{"packages_used"}{$Apache::Registry::curstash}||=[]); - push @$aref,$class - if !{ map(($_=>1),@$aref) }->{$class}; # Prevent duplicated entries. - CORE::require $file; - 1; # Otherwise 'require' would already file above. -} - sub fatal (;$); sub args_check (%) @@ -243,7 +262,6 @@ sub footer (;$) } ( $W->{"__PACKAGE__"}, __PACKAGE__, - "WebConfig", @{$W->{"packages_used"}{$Apache::Registry::curstash}}, ))); print "

\n";