HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
niner
Inline-Perl5
Raku2014–2024
niner / Inline-Perl5

Inline-Perl5

Use Perl 5 code in a Raku program

13Distinct people
25Mentions
0Explicit recommenders
97GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Use Perl 5 code in a Raku program

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year25 dated mentions

Observed mentions: 2014-11-08 05:51:56 UTC to 2024-10-19 09:20:08 UTC.

0369122014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC12012
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC404
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC110

What Hacker News says

25 sources
Have you used Raku before? The new and improved regex syntax [1] IMHO completely obsoletes legacy PCRE. Writing regexes in other languages feels like stepping into an ICE vehicle after driving a Tesla: so crufty and old and obvious legacy. Raku’s built-in grammars make parsers trivial to write. I effortlessly created two [2] — one for reordering fstab entries, and the other for converting human-readable LUKS offsets into cryptsetup sectors — on a lazy afternoon. Grammars in Raku make this second nature. Then you have Raku’s multi-dispatch. It is more capable than Erlang/Elixir pattern matching: # a list with at least one element, extracting the head and tail multi sub tail(*@list ($head, *@tail)) { @tail } multi sub tail(*@list) { @list } [3] ==> tail() ==> say(); # [] [3, 4] ==> tail() ==> say(); # [
Read the rest
4] # pattern matching with arbitrary guards multi sub user($name where { is-valid-user($_) }) { $name.say } multi sub user($name) { "invalid name: $name".say } sub is-valid-user($name) { # notice the additive character class in this regex: “letters plus digits” # fail the match if $name is root try with $name ~~ /(<+:Letter +digit>+)/ { $0 ne 'root' or fail }; $!.not } user('name'); # name user('1234'); # 1234 user('root'); # invalid name: root class Coordinates { has $.latitude is required; has $.longitude is required; } class City { has Str:D $.name is required; has Str:D $.state is required; has Str:D $.country is required; has Coordinates:D $.coordinates is required; } my $latitude = -37.840935; my $longitude = 144.946457; my Coordinates $coordinates .= new(:$latitude, :$longitude); my Str:D $name = 'Melbourne'; my Str:D $state = 'Victoria'; my Str:D $country = 'Australia'; my City $melbourne .= new(:$name, :$state, :$country, :$coordinates); my City:D $sydney = do { my Coordinates:D $coordinates = do { my $latitude = -33.86514; my $longitude = 151.209900; Coordinates.new(:$latitude, :$longitude); }; my Str:D $name = 'Sydney'; my Str:D $state = 'New South Wales'; my Str:D $country = 'Australia'; City.new(:$name, :$state, :$country, :$coordinates); }; # deeply nested argument deconstruction multi sub melbourne-or-bust( City:D $city ( Str:D :$name where 'Melbourne', Str:D :$state, Str:D :$country, :$coordinates ( :$latitude, :$longitude ) ) ) { my $gist = qq:to/EOF/.trim; Welcome to the city of $name. It’s located in $state, $country. GPS coordinates: $latitude, $longitude EOF $gist.say; } multi sub melbourne-or-bust(City:D $city) { 'This isn’t Melbourne.'.say; } melbourne-or-bust($melbourne); # Welcome to the city of Melbourne ... melbourne-or-bust($sydney); # This isn’t Melbourne > Perl 6 was treated as the successor of Perl 5 -- and that was the mistake. It meant Perl 5 started dying, Perl 6 took a long time to make, but how much did that matter? What was Perl going to do about Rails, Clojure, Go, Rust, JS/TS, and more? The world of programming languages used to be a lot smaller than it is today. > Perl 6 had a new different syntax. Inline::Perl5 [3] allows running legacy Perl 5 code in Perl 6 codebases. [1]: https://docs.raku.org/language/5to6-nutshell#Regular_express... [2]: https://github.com/atweiden/voidvault [3]: https://github.com/niner/Inline-Perl5
In What Happened to Perl 7?
> Raku and Perl remain incompatible so e.g. the existing large Perl ecosystem can't be leveraged from Raku. Au contraire, they remain compatible along the lines shown in this example from a StackOverflow answer[1]: use Text::BibTeX::BibFormat:from<Perl5>; ... @blocks = $entry.format; I'll be happy to dialog about this compatibility, but the key thing is to start with an open mind; a recognition that the original vision predated Parrot; and a recognition that Rakoons have never relinquished that original vision even while many of us are delighted that Perl folk are keeping Perl healthy as a separate thing in its own right. To be clear, the realization of Larry's original vision is not constrained to interop with Perl. Raku has extraordinary potential, some already realized, for pan-language compatibility via its Inlines[2]. Th
Read the rest
e steady improvement of the exemplar Inline[3] for the last 6 years; its evident maturing; its suitability as a solid blueprint for upgrading all the others; all of this bodes well for being able to use a lot of the world's best existing code from within Raku this decade, with Inline::Python quite plausibly shining in this regard within the next 2-3 years. [1] https://stackoverflow.com/a/45181464/1077672 [2] https://modules.raku.org/search/?q=inline [3] https://github.com/niner/Inline-Perl5
In The Future of Perl
Well not just what they know, but what all their existing stuff is written in. Makes sense too. The two Perls aren't really that compatible, far worse than migrating Python 2 to 3 and companies struggled with that manoeuvre. You can run and call each language from the other, with some in memory wrangling between https://github.com/niner/Inline-Perl5 But the same is true for Python and Java objects.
In Perl and Undecidability (2008)
> with half-baked interpreters written in an obscure language like Haskell Because the author thought it to be fun. You know, hackers and all. > or written in Perl 6 itself using half-baked Perl 6 to 5 converters Oh, I don't think that ever happened. You may be thinking of NQP? Which is still a Thing, and it's what Perl 6 is written in, which is amazing. There was also the initial idea that Perl 6 could run Perl 5, but this is proving impossible. This is done now using the Inline::* modules, which will use say, the Perl 5 interpreter. [0] So, there's one for Perl5 to allow for compatibility with Perl 5 modules, but also for Python[1], and most likely for x language. That's awesome! Of course, the inverse is true, too. You can call up Perl 6, from Perl 5![2] > or targeting the .NET CLR or JVM, or targeting very > obscure and limited VMs l
Read the rest
ike Parrot or MoarVM. Targeting .NET or JVM is also a good idea! Many languages do it. The general idea of Parrot shares a lot of interesting ideas with .NET - I almost want to say Parrot precedes .NET. The April Fools joke certainly did. If it didn't, Parrot was certainly inspired by .NET - or it was just an idea that was in the air at the time. Good idea! [0] https://github.com/niner/Inline-Perl5 [1] https://github.com/niner/Inline-Python/ [2] https://metacpan.org/pod/Inline::Perl6
In Larry Wall's Perl 6 Release Talk [video]

Showing the 15 most recent of 25 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.