http://www.perlmonks.org?node_id=757587


in reply to Re^3: Error ... at (eval 75) line 7974.
in thread Error ... at (eval 75) line 7974.

Have you tried enabling trace?

I just tried the -d:Trace and that did give me the line number in P::RD where the eval is called. It was indeed line 7974 (which comes from Inline/CPP/grammar.pm) of that string that was causing the problem:
$return .= join '',' ',@{$item{$Inline::CPP::grammar::star}} if @{$ite +m{$Inline::CPP::grammar::star}};
So I made the excution of that line of code conditional upon $item{$Inline::CPP::grammar::star} being defined, and the problem went away.

Unfortunately, that's not the whole solution, as the grammar is still broken. From the first inline::CPP test script (during 'make test') I now get:
_01basic_t_5cd2.c: In function `void XS_main__Soldier_new(PerlInterpre +ter*, CV*) ': _01basic_t_5cd2.c:79: error: no matching function for call to `Soldier +::Soldier( )' _01basic_t_5cd2.xs:16: note: candidates are: Soldier::Soldier(const So +ldier&) _01basic_t_5cd2.xs:30: note: Soldier::Soldier(char*, c +har*, int) dmake: Error code 129, while making '_01basic_t_5cd2.o'
Given that Inline::CPP is no longer maintained, I see little point in digging further ... though, of course, pointlessness does not necessarily deter me :-)

I'm just glad that Inline::C hasn't similarly been destroyed by the latest versions of P::RD.

Cheers,
Rob