Perl 6
Learn About Perl 6: Revision 9
This page is for general resources to learn about Perl 6. For the official documentation, see the [Documentation] page.

^^ What is Perl 6?

* "Perl 6"<> is an extensively refactored, super-modernized, and ultra-supercharged derivative of Perl 5. Simple things will still be simple to do, but you'll have enormously more "syntactic compound leverage" and "semantic overdrive" available for tackling challenging tasks.
* chromatic has written a good introductory article on "why Perl 6 is needed, and what it is"<>.
* Also see Juerd's "Refuting Perl 6 Myths"<>. (A slight correction to Juerd's slides: it is Perl 5.10 that will have many Perl 6 features you can start using. These will be in ""<>, which is currently part of the "Perl 5.9 developer branch"<>.)
* See the documentation section below for much more information.

^^^ The Long Perl 6 Super-Feature List

* [The Long Perl 6 Super-Feature List] This list was moved to its own page so that there would be plenty of room for people at add additional explanations of what these features are, and to explain why they are Very Good Things (tm).

^^^ More Answers (in terms of design objectives)

* Larry Wall (2002, on /.):
** Perl has acquired new skills over the years, and people have been using Perl to do all sorts of things that are arguably at the limits of its capabiliites. The solution to that is not to stop people from doing that, but to increase Perl's dynamic range.
** We can't eliminate the necessary complexity, but we can hope to get rid of some of the needless complexity. That will make everything easier. Well, most everything...
>> I'm really under no illusions that we can make everything easier at once. There's no such thing as a perfect language. Merely making a more expressive language means it's in some sense more difficult to learn to express yourself responsibly. That's the price of power. Manhattan will always be more difficult to understand than a set of beads.

** Language designers tend to look at how experts program and then think that everyone ought to learn to program that way from the start. That's a bit like expecting a new surfer to do well on 40 foot waves. Some will make it, but most will wipe out.
>> Perl is designed to help people learn the bits of programming they need right now without forcing them to learn the techniques they aren't ready for. But when they are ready for them, Perl tries to be there too. We just don't tell the beginners that the speedometer on their golf cart wraps around several times.

** Perl matches the way I think pretty well, because what I mostly want in a computer language is a wide dynamic range. I want a language in which you can say both dirty, low-level stuff and fancy, high-level stuff. I want a language where both baby-talk and fluency are acceptable. Other computer languages tend to try to level those distinctions.
** My goal is (and has always been) for Perl to be as useful as possible.
** Making Perl the best tool for growing programs from small to large is actually one of the underlying design goals of Perl6.
** Perl is obviously my attempt to help other people be creative. In my little way, I'm sneakily helping people understand a bit more about the sort of people God likes.
>> Going further, we have the notion that a narrative should be defined by its heart and not by its borders. That ties in with my linguistic notions that things ought to be defined by prototype rather than by formula. It ties in to my refusal to define who is or is not a "good" Perl programmer, or who exactly is or isn't a member of the "Perl community". These things are all defined by their centers, not by their peripheries.
>> The philosophy of TMTOWTDI ("There's more than one way to do it.") is a direct result of observing that the Author of the universe is humble, and chooses to exercise control in subtle rather than in heavy-handed ways. The universe doesn't come with enforced style guidelines. Creative people will develop style on their own. Those are the sort of people that will make heaven a nice place.

* Damian Conway (2003): The Perl 6 design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing. That means there will be a few fundamental changes to the language, a large number of extensions to existing features, and a handful of completely new ideas. These modifications, enhancements, and innovations will work together to make the future Perl even more insanely great — without, we hope, making it even more greatly insane.
* Larry Wall (2006): Perhaps the Perl 6 slogan should be "All Your Paradigms Are Belong To Us". We'll get to that.
* Larry Wall (2008): In ecological terms, I hope Perl 6 will have a very wide gene pool.

^^^ Perl 6 News

* "Planet Perl 6 blog aggregrator"<> (The best general news source for Perl 6. It would be very helpful if others selectively copied the most useful information from this great resource into appropriate sections of this wiki.)
* "Planet Parrot blog aggregator"<>

^^^ Articles on Perl 6

* These are being consolidated under [Perl 6 Articles and Presentations], which has much more info.
** "What is Perl 6?"<>
** "Refuting Perl 6 Myths"<>
** "Present Continuous, Future Perfect"<,_Future_Perfect> Larry Wall's 2006 Perl talk.
** The O'Reilly "Perl website"<> often has interesting articles about Perl 6. (Need to search for the older ones.)

^^^ Some design influences on Perl 6

* These are being consolidated under [Perl 6 Articles and Presentations], which has much more info.
** ""Perl Best Practices"<>" by Damian Conway. Even though this currently applies to Perl 5, most of the principles also apply to Perl 6. This book is a semi-officially recommended guideline for people doing develop core Perl 6 modules and tests.
** ""Confessions of a Used Programming Language Salesman; Getting the Masses Hooked on Haskell"<>" (Warning: PDF link) by Erik Meijer.
** "Traits"<> are one of the "Big Ideas" that have had some influence on #perl6 design discussions.
** ""The 100 Year Language"<>" by Paul Graham. A classic essay on how we should view Perl 6 (even though it's not about Perl 6).

^^^ Perl 6 Example code--

* Perl 6 examples (<>)
* Perl 6 tests (<>)

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.