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