Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Using module with c code in perl program.

by stevieb (Canon)
on Dec 21, 2015 at 17:49 UTC ( #1150870=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1150870]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2023-03-22 14:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (60 votes). Check out past polls.

    Notices?