On Fri, 13 Oct 2006 1:48 pm, Ted wrote:
> Hi,
>
> I get the following warnings when using Apache2::Reload. How can
> I get rid of them? Constant subroutine MyApp::MY_CONSTANT redefined at
> /usr/local/lib/perl5/site_perl/5.8.6/sun4-solaris/ModPerl/Util.pm line
> 69.
> Prototype mismatch: sub MyApp::MY_CONSTANT: none vs () at
> /usr/local/lib/perl5/5.8.6/Exporter.pm line 65.
> at MyApp.pm line 6
> Prototype mismatch: sub MyApp::numerically: none vs ($$) at
> /usr/local/lib/perl5/5.8.6/Exporter.pm line 65.
> at MyApp.pm line 6


This pragma in your httpd.conf might take care of it:


$ModPerl::Util:EFAULT_UNLOAD_METHOD = 'unload_package_xs';


Thanks to gozer for the reference. I'll add this to the docs when I get
a free tuit (this feature currently undocumented).

> Here is the code:
> ------------
> MyApp.pm
> ------------
> #!/usr/local/bin/perl
>
> package MyApp;
> use strict;
> use MyLib qw(MY_CONSTANT numerically);
>
> sub handler {
> my $r = shift @_;
> $r->content_type('text/plain');
> print "Hello\n";
> return Apache2::Const::OK;
> }
> 1;
>
> ------------
> MyLib.pm
> ------------
> #!/usr/local/bin/perl
>
> package MyLib;
> use strict;
>
> BEGIN {
> use Exporter ();
> our (@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
>
> @ISA = qw(Exporter);
> @EXPORT = qw();
> @EXPORT_OK = qw();
>
> %EXPORT_TAGS = (
> subs => [qw(MY_CONSTANT numerically)],
> );
>
> Exporter::export_ok_tags('subs');
> }
>
> use constant MY_CONSTANT => 'Test 123';
>
> sub numerically ($$) {
> my($a, $b) = @_;
> $a <=> $b;
> }
> 1;
>
>
> Thanks,
> Ted