On Tuesday 17 June 2008 21:06:32 Sisyphus wrote: > However, both Inline::CPP and InlineX::CPP2XS have no problem with the > following form of the version() function:
Sorry for all the extra replies, but in implementing my workaround, I got the bug again. :) This one strikes me as especially curious. As you can see below, the code is read into a global which Inline::CPP (should be) treating as a string. The method resolution issue crops up again here. Note: If I paste the code out of the file that's read into the string wholesale into a heredoc, it works fine. ---- package MIME::KDE; use warnings; use strict; use version qw(qv); our $VERSION = qv('0.01'); our $CODE = ""; use File::Basename qw(dirname); BEGIN { open(CPP, dirname(__FILE__).'/src/mimelib.cpp') || die "Couldn't locate C++ stub: $!"; local $/ = undef; $CODE = <CPP>; close(CPP); print STDERR "$CODE\n"; }; use Inline CPP => Config => LIBS => ['-lkio', '-lkdecore'], INC => ['-I /usr/include/kde', '-I /usr/include/qt3'], ENABLE => 'STD_IOSTREAM' ; use Inline CPP => "$CODE";