http://qs321.pair.com?node_id=460650


in reply to Re: perlxs documentation
in thread perlxs documentation

All the examples i've tried from perlxs, perlxstut, perlapi, perlguts and perlembed have been up-to-date for me

I tried running the example of Mytest that is given in perlxstut, the code generated for me was different than the onw they're talking about in the tutorial and I couldn't make it work.

Replies are listed 'Best First'.
Re^3: perlxs documentation
by Joost (Canon) on May 26, 2005 at 12:56 UTC
    I hope you're refering to your local copy of perlxstut - the copies on perlmonks are out of date. But indeed, the files generated with perl 5.8.6 are slightly longer and have more options and comments in them than the docs show, though it's not too spectacular.

    I just tried the first example (adding the hello world function to the xs file) and it works fine for me. Here's what my Mytest.xs looks like (no changes required to any other file) update: I mean: just do what the tutorial says, and ignore small differences in the generated files compared to the docs:

    #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" MODULE = Mytest PACKAGE = Mytest void hello() CODE: printf("Hello, world!\n");
    and the test script:
    #!/usr/local/bin/perl use ExtUtils::testlib; use Mytest; Mytest::hello(); __OUTPUT__ Hello, world!
    You should probably remember that XS is whitespace sensitive, especially with regards to the function prototypes.

    HTH, Joost.

      the "hello world" worked for my just fine, it was indeed easy, the rest didn't, I'll check the whitespace sensativity thing you mentioned even though I think I did it ok.