On Tuesday 17 June 2008 21:06:32 Sisyphus wrote:
> ----- Original Message -----
> From: "Sisyphus" <[EMAIL PROTECTED]>
> .
> .
>
> > ---------------------------------------------
> > package MIME::KDE;
> > use warnings;
> >
> > use Inline CPP => <<'EOC';
> >
> > #include <iostream>
> >
> > namespace MIME {
> >    namespace KDE {
> >        const char* version(void) {
> >            return "my version is 0.01";
> >        }
> >    }
> > }
> > EOC
> >
> > $z = MIME::KDE::version();
> > print $z, "\n";
> > ----------------------------------------
>
> Been playing around a bit ...
>
> Is the 'namespace' stuff needed ? It poses problems with InlineX::CPP2XS,
> too.
>
> However, both Inline::CPP and InlineX::CPP2XS have no problem with the
> following form of the version() function:

Thanks for the information! I'll try and reply to both of your posts here.

The namespace stuff is not needed. I get the same effect whether or not the 
namespaces are added.

So it's a general subroutine resolution error, that helps a lot. I never use 
autosplit/AutoLoader in modules I write.. Hence the error was fairly cryptic 
to me.

I'll try installing it, but right now it's just an edited version of a 
Module::Starter init (if you're not familiar, it's pretty much what you'd 
find in most CPAN distributions, lib/ t/ etc.). M::B is the build system.

My execution that generated the original error was:

perl -I lib -MMIME::KDE -e 'print MIME::KDE->version()'

I'll send another reply in a few minutes once I get a chance to attempt your 
ideas. Thanks again for your help.

-Erik

Reply via email to