#! perl -slw use strict; use Config; use Inline C => Config => BUILD_NOISY => 1, CCFLAGS => $Config{ccflags}." -DDEBUG=1"; use Inline C => <<'END_C', NAME => 'ICexample', CLEAN_AFTER_BUILD =>0; int add( int a, int b ) { int result; result = a + b; return result; } END_C my $a = 12345; my $b = 23456; my $c = add( $a, $b ); print $c; #### int add( int a, int b ) { int result; result = a + b; return result; } #### XS_EUPXS(XS_main_add) { dVAR; dXSARGS; int a = (int)SvIV(ST(0)) int b = (int)SvIV(ST(1)) int RETVAL; dXSTARG; RETVAL = add(a, b); XSprePUSH; PUSHi((IV)RETVAL); XSRETURN(1); } #### XS_EXTERNAL(boot_ICexample) { dVAR; dXSARGS; const char* file = __FILE__; XS_VERSION_BOOTCHECK; newXS("main::add", XS_main_add, file); XSRETURN_YES; }