15

Is the a way to use Perl 5 modules from CPAN from Rakudo Perl 6?

For example, how can I use the venerable Perl 5 module, CGI, which hasn't been ported yet, in Perl 6.

Update:

And what this funky code from some early Perl 6 module:

use CGI:from<perl5>;

Is the :from<perl5> directive used to evoke some kind of a Perl 5 compatibility layer? Can't seem to find any documentation about it.

jjmerelo
  • 22,578
  • 8
  • 40
  • 86
GeneQ
  • 7,485
  • 6
  • 37
  • 53
  • 1
    I understand CGI is just a example, but for modern web development you could look [Dancer for Perl6](http://ttjjss.wordpress.com/2012/01/06/state-of-dancer-on-perl-6) – w.k Feb 07 '12 at 13:10
  • possible duplicate of [Are perl5 libraries are importable in perl6?](http://stackoverflow.com/questions/15382133/are-perl5-libraries-are-importable-in-perl6) – teodozjan Aug 26 '13 at 12:18
  • 1
    Like @w.k., I understand CGI is just an example, but, like them, I also want to mention a native Raku option for web dev, though in my case it's from the perspective of late 2019: [Cro](https://cro.services/). – raiph Nov 30 '19 at 21:08

2 Answers2

10

Use Inline::Perl5.


The following example shows how to use the CPAN hosted Perl 5 module Text::Unidecode ("the Unicode transliteration of last resort") in Raku.

First, install Inline::Perl5 if you don't already have it installed:

zef install Inline::Perl5

Now install the CPAN module if you don't already have it installed:

perl -MCPAN -e "install Text::Unidecode"

You can now use the installed Perl module by writing a use statement with an appended :from<Perl5> (with an uppercase P, not :from<perl5>) :

use Text::Unidecode:from<Perl5>;
say Text::Unidecode::unidecode 'Solidarność';

displays:

Solidarnosc

See also other SO posts about Inline::Perl5.

raiph
  • 31,607
  • 3
  • 62
  • 111
user7610
  • 25,267
  • 15
  • 124
  • 150
0

There is blizkost project that aims to use of perl5 code from Rakudo/Parrot. However it is AFAIK in quite early stage of development and probably not usable for real code.

bvr
  • 9,687
  • 22
  • 28