Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^4: About using rperl

by Anonymous Monk
on Aug 14, 2019 at 02:28 UTC ( #11104425=note: print w/replies, xml ) Need Help??

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

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2022-01-26 15:28 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (69 votes). Check out past polls.