in reply to Using module with c code in perl program.

Update: read Re: Using module with c code in perl program. by AnonyMonk, as that post contains the full explanation straight from the docs. /update.

I haven't coded in C in many years, and I've never used Inline::C ever, but I took a stab. When I simplify your C code, then change __END__ to __DATA__ in the module, I can get the C to compile, and things *appear* to work correctly. eg:

Module:

package c_calc; use Inline C; 1; __DATA__ __C__ int test(int num){ return num; }

Script:

use warnings; use strict; use lib '.'; use c_calc; my $num = c_calc::test(5); print $num;

Might be worth a try. Let us know if it works or not, as inevitably, one or more of the Inline experts will be around eventually.

Replies are listed 'Best First'.
Re^2: Using module with c code in perl program.
by k0shinus (Novice) on Dec 22, 2015 at 08:22 UTC

    Replacing __END__ to __DATA__ working, thanks a lot!

Re^2: Using module with c code in perl program.
by PilotinControl (Pilgrim) on Dec 21, 2015 at 19:37 UTC

    I've used Inline::C with success and it works under Win32 too.

      I can't confirm for sure because I was only reading into the error message OP was getting, but none of the examples I found online showed using Inline::C within a module, so I traded __END__ for __DATA__ which the error clearly stated it was looking for, and I suspect the module close was causing the grief.

      I'm hoping one of the experienced Inline Monks has run into this before, and can clarify. My test was literally just a guess and some playing :) On Windows, I'd think that one would need to install a C compiler (unless ActiveState and/or Strawberry come with one build-in).

      Update: read Re: Using module with c code in perl program. by AnonyMonk, as my suspicions regarding end-of-module are definitely confirmed by the documentation, per that post.

        There should be examples in the Inline::C module for both the C and Perl side of the equation. I followed the examples step by step and the Hello World example worked as stated. I am using ActiveState Perl