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