From Perl 6
To Raku
(With Love)

by Arne Sommer

From Perl 6 to Raku (With Love)

[38] Published 24. October 2019. Updated 17. May 2020.

You may have read that «Perl 6» has just been renamed to «Raku». It happened in a very low key fashion, without any official announcement. The reason is that the actual rename will coincide with a compiler release.

Some Context

Perl 6 has had a long and thorny history. Nobody expected that it would take 15 years from conception (in 2000) to birth (in 2015). In the meantime it has become glaringly obvious that Perl 6 will not replace Perl 5 (as initially intended, and as Perl 5 replaced Perl 4). There is too much Perl 5 code in daily use, and it works perfectly well. Perl 5 is a very useful and competent language, and will remain so.

So it was decided to redefine it from a successor language to a sister language emerged, to debunk the perception of a superior language hell-bent on superseding Perl 5. The destinction was probably a lost cause.

Then in 2018 came the decision to allow «raku» as an alias for Perl 6, but that didn't make traction, and was probably just adding to the confusion.

And now in October 2019 the core developers and Larry Wall has decided to officially rename the language. Nobody knows what this will mean for the futures of the two, now explicitly separate, languages. But we can only hope for a long and happy life for both of them.

Musings Rebooted

This brand new web site («Raku Musings») uses the new name, but my old articles 1-37 (using «Perl 6» and originally published on perl6.eu), has been rewritten to reflect the language rename and moved here.

Raku May Already be There

You may have raku available on your computer. You can check it on a Unix-like system like this:

$ which raku
/opt/rakudo-pkg/bin/raku

On my computer, using Pre-compiled native pagackes, raku is simply a symbolic link to the perl6 executable, but this is likely to change (with perl6 becomming the symbolic link to raku) with the official rename.

If «raku» isn't available, you'll get no output from the «which» command. Just create the missing symbolic link, and you are good to go.

$ cd /opt/rakudo-pkg/bin/
$ sudo ln -s perl6 raku

The Crash Bang Line

You can fix the Crash Bang Line in the scripts (typically #! /usr/bin/env perl6) with a one-liner like this (in Perl 5, as a nice gesture to a nice language):

$ perl -pi.bak -e 's/perl6/raku/g' *

It will work on all the files (the *), or you can specify the filenames instead. Note that the command makes copies of the files, before the changes, with «.bak» added to the filename.

Note that the command will replace the text everywhere in the files.