The following Inline::CPP code generates the following annoying warning message: 'else if" is wrong syntax, correct if 'elsif'. Do you want to continue ? Does anyone have any ideas on where it's coming from, why and how to get rid of it ??
use strict; use warnings; use Inline 'CPP' => 'DATA'; my( $p, $r, $n, $y ) = ( 600, 50, 2, 3 ); my $rv = interest( $p, $r, $n, $y ); print "\$rv: $rv\n"; __DATA__ __CPP__ double interest( double p, double r, int n, int y ) { double result; result = p/ (n*y) ; if ( result == r ) return 0.0 ; else if ( result < r ) return -1.0 ; else return result; } *My system specifics* Inline::CPP 0.39 DWIM Perl for Windows (Dwimperl-5.14.2.1-v7-32.exe released on 2012.02.12) DWIM is a Strawberry Perl for Windows derivative (Strawberry Perl 5.14.2.1 RC ). OS Windows XP (SP3) (32-bit) === *Contents of file lib\Inline\CPP\Config.pm* package Inline::CPP::Config; # Configuration data for CPP.pm; Compiler, libs, iostream filename, #defines. use strict; use warnings; our $VERSION = '0.38_004'; $VERSION = eval $VERSION; ## no critic (eval) # DO NOT MANUALLY ALTER THE FOLLOWING TWO LINES: Makefile.PL locates them by # matching their syntax and identifier names. our $compiler = 'g++'; our $libs = '-lstdc++'; # DO NOT MANUALLY ALTER THE FOLLOWING LINE: Makefile.PL locates it by # matching its syntax and identifier name. our $iostream_fn = 'iostream'; # DON'T EDIT THIS HERE-DOC. These are set by Makefile.PL. Override # by supplying undefs in an AUTO_INCLUDE configuration. our $cpp_flavor_defs = <<'END_FLAVOR_DEFINITIONS'; #define __INLINE_CPP_STANDARD_HEADERS 1 #define __INLINE_CPP_NAMESPACE_STD 1 END_FLAVOR_DEFINITIONS 1; __END__ =head1 Inline::CPP::Config For internal consumption; nothing to document.