Perl 6 is a clean, modern, multi-paradigm language; it offers procedural, object-oriented AND functional programming methodologies. It is a supremely flexible language, adapting to your style of programming, whether that be quick one­liners for sysadmins, scripts to manage a database import, or the full stack of modules necessary to realise an entire website.

Perl 6 enhances Perl’s long­term appeal with a proper object system including roles, threading and multi­method dispatch. It has spent a long time coming to fruition and has learned from other programming languages, building on their success and learning from the issues of the past. We believe Perl 6 is a language that will last for decades as it has been conceived to adapt to future trends and is flexible in its usage with other languages.

Perl 6 learns from other languages. For instance: taking threading from Java (simplified to a handful of methods); Foreign-function interfaces from Lisp make accessing libraries as simple as one line of code. Regular expressions are now turned up to 11 with the introduction of Parser Expression Grammars, which let you tackle huge parsing tasks. Strictures and warnings are now automatic, cutting out huge swathes of potential errors.

Perl 6’s mottos remain the same as Perl: “Perl is different. In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible.” and “There Is More Than One Way To Do It”. Now with even more -Ofun (optimized for fun) added.

Help us explain this better! File a GitHub issue at if you have suggestions, or submit a patch with improvements to the file.

Try It!

If you've downloaded the command-line client and have Perl 6 installed on your machine, then go ahead and fetch the first problem.

exercism fetch perl6

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE