in reply to Re^3: About using rperl
in thread About using rperl

This could be considered an example ... its a call to Inline::CPP ...

$RPerl::Inline::ARGS{libs} = '-lgmpxx -lgmp';

Replies are listed 'Best First'.
Re^5: About using rperl
by hakonhagland (Scribe) on Aug 14, 2019 at 13:20 UTC
    Interesting, so instead of converting the Perl code to a shared library, one could convert it to a .cpp source file instead which is then included into the main Perl script using gcc and Inline::CPP ? Alternatively, write a wrapper .cpp file that links with the generated shared library by giving a libs parameter to Inline::CPP ? It would still be great if someone could present a simple working (tutorial-type) example.. :)


      Inline::CPP writes xs modules for you , so you can call cpp functions from external cpp libraries without learning much xs

      It comes with "tutorial"

      RPerl converts Perl 5 source code into C++ source code

      RPerl then converts the c++ code it created from perl 5 source code, into xs module, using Inline::CPP

      There is no tutorial for explaining the RPerl way of wrapping an external library , is as close to an example as you will find is RPerl specific way of using Inline::CPP to call cpp functions from external cpp libraries ...

      Will_the_Chill has been here in a while

      Open an issue at and maybe negotiate :)

        If rperl is just a layer on top of Inline::CPP, then what is the advantage over patching B::Deparse to convert Perl Snippets to CPP?

        For instance code like the following

        sub func :cpp int { my int ($a,$b) = @_; return $a+$b }

        is (after predefining :cpp and int) legal perl5 syntax and B::Deparse gets all necessary details.

        sub func { (my int ($a, $b)) = @_; return $a + $b; } use attributes ('main', sub { (my int ($a, $b)) = @_; return $a + $b; } , 'cpp', 'int');

        So whats the extra value of rperl?

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery FootballPerl is like chess, only without the dice