Hi.

I'm working on releasing an update to Net-Patricia, and I needed to make 
AF_INET6 from the Socket6 space appear as an
exported symbol when Net::Patricia loads.  I currently do this as:

...
package Net::Patricia;

use strict;
use warnings;

require 5.6.0;

use version;
use Carp;
use vars qw($VERSION @ISA @EXPORT);
use Socket qw(AF_INET inet_aton inet_ntoa);
use Socket6 qw(AF_INET6 inet_pton inet_ntop);

BEGIN {
  require Exporter;
  require DynaLoader;
  @ISA = qw(Exporter DynaLoader);
  @EXPORT = qw(AF_INET AF_INET6);
}

'$Revision: 1.15_05 $' =~ m/(\d+)\.(\d+)(_\d+|)/ && ( $VERSION = "$1.$2$3");
...

in Patricia.pm.  However, building this and loading it causes:


Nov 16 14:44:58 mail mimedefang-multiplexor[15764]: Slave 1 stderr: Prototype 
mismatch: sub main::AF_INET6 () vs none at
/usr/lib/perl5/5.10.0/Exporter.pm line 66.#012 at /etc/mail/mimedefang-filter 
line 1479



in Mimedefang, which imports Net::Patricia 1.15_05 in mimedefang-filter ...

What am I missing? I'm trying to have Net::Patricia put AF_INET6 (and AF_INET) 
into the importing module's namespace so
that they don't need to be bothered by the chain-of-dependencies of 
Net::Patricia.

Is there a clean way to do this?

Thanks,

-Philip







Reply via email to