Perl 6
Perl 6: Revision 41
^^ Welcome to the Perl 6 Workspace

* This is the home page for Perl 6.
* There is a {link: parrot [Parrot]} workspace as well.
* Please feel free to add or modify pages — even this one — as you see fit. That's the idea of a Workspace. So please contribute links and information! (See *Wiki 101* at bottom of page to get started.)

{toc}

^^ What is Perl 6?

What is Perl 6? "Perl 6"<http://perl.net.au/wiki/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 "programming leverage" available for tackling challenging tasks. Chromatic has written a good introductory article on "why Perl 6 is needed, and what it is"<http://www.perl.com/pub/a/2006/01/12/what_is_perl_6.html>. Also see Juerd's "Refuting Perl6 Myths"<http://svn.openfoundry.org/pugs/docs/talks/p6myths2.html>. (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 "feature.pm"<http://search.cpan.org/~rgarcia/perl-5.9.3/lib/feature.pm> which is currently part of the "Perl 5.9 developer branch"<http://search.cpan.org/~rgarcia/perl-5.9.3/>.)

^^^ [The Long Perl 6 Super-Feature List]

^^^ Other Answers

* Larry Wall (2006): Perhaps the Perl 6 slogan should be "All Your Paradigms Are Belong To Us". We'll get to that.
* 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.
* Perl 6 is still under construction. So don't make critical plans that depend on it just yet. However, please see other sections below about intermediate Perl 6-related solutions you can use now (or soon, as in Perl 5.10, which will feature several Perl 6 features).
* Crazy (in a good way)
* Perl 5 : Swiss Army Chain Saw == Perl 6 : Swiss Army T-X Terminator (on the side of humans in this case)
* ....

^^ Where to get Perl 6

* Win32 binary builds of Pugs and Parrot (easiest way to get started):
** (<http://www.jwcs.net/~jonathan/perl6/>).
** (Pxperl.com appears to have stopped routinely updating their Win32 builds.)
* Pugs: (<http://www.pugscode.org/>)
* Parrot home page: (<http://www.parrotcode.org/>)
* FYI: Perl development server: (<http://feather.perl6.nl/>).
* Code repository:
** Live repository (<http://svn.openfoundry.org/pugs/>)
** Mirror (<http://svn.perl.org/perl6/pugs/trunk/>)
* Perl 6 code examples. (Once you've had a chance to play with these examples, you may want to contribute your own examples and tests.):
** Perl 6 examples (<http://svn.perl.org/perl6/pugs/trunk/examples/>)
** Perl 6 tests (<http://svn.perl.org/perl6/pugs/trunk/t/>)

^^ The Very Latest Perl 6 Information

(See the next major section for general information, including documentation, tutorials, and so on.)

^^^ General Perl 6 News

* "Planet Perl 6 blog aggregrator"<http://planetsix.perl.org/> (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"<http://planet.parrotcode.org/>

^^^ Perl 6 Mailing Lists

The currently active Perl 6 mailing lists are at (<http://www.nntp.perl.org/group/>) and Google Groups (<http://groups.google.com/>):

* "perl.perl6.internals"<http://www.nntp.perl.org/group/perl.perl6.internals>
* "perl.perl6.language"<http://www.nntp.perl.org/group/perl.perl6.language>
* "perl.perl6.compiler"<http://www.nntp.perl.org/group/perl.perl6.compiler>
* "perl.perl6.announce"<http://www.nntp.perl.org/group/perl.perl6.announce>
* "perl.perl6.users"<http://www.nntp.perl.org/group/perl.perl6.users>

You can also get these by email; see (<http://lists.cpan.org/showlist.cgi?name=perl6-users> for details (and make appropriate substitutions on "-users" for other groups).

You can access the mailing lists in several ways (we use perl.perl6.users as an example below, make appropriate substitutions for other cases):

* Subscribe by emailing perl6-users-subscribe@perl.org.
* Access the news feed by pointing your news reader to: <news://nntp.perl.org/perl.perl6.users>. Need a decent Windows newsreader? "Mozilla's Thunderbird"<http://www.mozilla.com/thunderbird/> works for me.
* We're also available at "Google Groups perl.perl6.users"<http://groups.google.com/group/perl.perl6.users>. (Actually, *.users may be the only one not yet there.)
* Subject lines of mailing list posts with link to each post can be found in the "perl.perl6.users mail list archives"<http://www.nntp.perl.org/group/perl.perl6.users>.
* There is also a "RSS feed"<http://www.nntp.perl.org/rss/perl.perl6.users.rdf>.

^^^ Perl 6 IRC

IRC channels (and their archives) are a major source of useful information. NOTE: Please don't unthinkingly interrupt and pester the developers of Perl 6 with questions that you can just as well ask on perl.perl6.users, which they and others can then later answer at their convenience. (As always, it's good manners to search Google Groups and to check archival logs before posting questions.)

* The "#perl6" IRC channel is on (<http://freenode.net/>).
* "Daily logs"<http://colabti.de/irclogger//irclogger_logs/perl6> are available.
* "TimToady" is Larry Wall's nickname on #perl6.
* Need an IRC client on Windows? Try "Chatzilla"<http://www.mozilla.org/projects/rt-messaging/chatzilla/>, a "Firefox"<http://www.mozilla.com/firefox/> extension.
* Some handy #perl6 "bot-isms":
** ?eval <Perl 6 expression> # Replays with evaluated expression.
** perlbot nopaste # Use to paste blocks of text offline; it replies to IRC with URL to it.

^^ Perl 6 Documentation

* [Glossary] of Perl 6 terms and jargon.
* "Official Perl 6 Documentation Page"<http://feather.perl6.nl/syn/> (Which means, documentation that is officially bundled with Perl 6 builds.) (on feather, a Perl 6 development server)
* "Perl6 Community Development Server"<http://feather.perl6.nl/> (on feather, a Perl 6 development server)
* "Perl's Official Home Page"<http://www.perl.org/> (at perl.org)
* "Perl 6 Synopses"<http://dev.perl.org/perl6/doc/synopsis.html> (This is the official Perl 6 specification, which supersedes the apocalypses and exegeses, and which is bundled with Perl 6 builds. The rapidly growing Perl 6 test base is another {very important, complementary, and emerging} part of the Perl 6 specification as well.)
* "Perl 6 Development Info"<http://dev.perl.org/perl6/> (at perl.org)
* "Another Perl 6 Wiki"<http://perl.net.au/wiki/Perl_6> (For a long time, the Perl 6 Wiki at perl.net.au was the best general introduction to Perl 6, and a great point of departure to other Perl 6 resources around the web.)
* "Perl 6 Users FAQ"<http://perl.net.au/wiki/Perl_6_Users_FAQ> (The initial large batch of text and links on this Wiki originally came from this FAQ on the perl.net.au Perl 6 Wiki. The folks there deserve much thanks for "Wikifying" my original ugly ASCII Perl 6 Users FAQ, which was developed at the inaguration of perl.perl6.users.)
* "Perl 6 Tutorial"<http://perl.net.au/wiki/Perl_6_Tutorial> (at perl.net.au)
* Most of the information on getting started can be found on this "getting started"<http://svn.perl.org/perl6/pugs/trunk/docs/getting_started> page. You may also find the following links useful:
** Debian Linux (guide in "English"<http://dresden-pm.org/cgi-bin/twiki/view/PM/PugsFirstBloodEnglish>, "German"<http://dresden-pm.org/cgi-bin/twiki/view/PM/PugsFirstBlood>).
** "Ubuntu Linux"<http://www.nntp.perl.org/group/perl.perl6.users/36>.
* Russian language "Perl 6 website"<http://perl6.ru/>.

^^^ General background articles on Perl 6:

* "Who's Who in Perl 6, Parrot, & Pugs"<http://dev.perl.org/perl6/people.html>
* "What is Perl 6?"<http://www.perl.com/pub/a/2006/01/12/what_is_perl_6.html>
* "Refuting Perl 6 Myths"<http://svn.perl.org/perl6/pugs/trunk/docs/talks/p6myths2.html>
* "Present Continuous, Future Perfect"<http://wiki.osdc.org.il/index.php/Larry_Wall_-_Present_Continuous,_Future_Perfect> Larry Wall's 2006 Perl talk.
* The O'Reilly "Perl website"<http://www.perl.com/> sometimes has interesting articles about Perl 6. (Need to search for them.)

^^^ Some design influences on Perl 6:

* "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"<http://research.microsoft.com/~emeijer/Papers/ICFP06.pdf>" (Warning: PDF link) by Erik Meijer.
* "Traits"<http://www.iam.unibe.ch/~scg/Research/Traits/> are one of the "Big Ideas" that have had some influence on #perl6 design discussions.
* ""The 100 Year Language"<http://www.paulgraham.com/hundred.html>" Useful information on how we should view Perl 6 (although it's not about Perl 6).

^^^ Helping with the Perl 6 documentation

These links are about hacking on Perl 6 docs:

* "Read this first"<http://svn.perl.org/perl6/pugs/trunk/docs/README>.
* "The evil plan"<http://svn.perl.org/perl6/pugs/trunk/docs/notes/docs_evil_plan.txt>. This mentions many things you can do to help out with docs, although it is a bit dated.
* This plan is still current AFAIK: "Perl 6 developers are refactoring relevant introductions, tutorials, specifications into the Perl6::Doc namespace; expect to see this module subsumed by it in the near future.":
** (<http://www.annocpan.org/~AUTRIJUS/Perl6-Bible-0.30/lib/Perl6/Bible.pm>),
** (<http://search.cpan.org/~autrijus/Perl6-Bible-0.30/lib/Perl6/Bible.pm>). <>Helping with the hacking. These links are about hacking on versus hacking with) Perl 6.
* "Pugs Apocryphon 1"<http://svn.perl.org/perl6/pugs/trunk/docs/01Overview.html> Overview of the Pugs project.
* "Doing Pugs-related development"<http://svn.openfoundry.org/pugs/docs/getting_started>.
* "A Peek Into Pugs Internals" ""A Peek Into Pugs Internals""<http://perlcabal.org/~gaal/peek/start.html>
* "German language notes about compiling Pugs"<http://dresden-pm.org/cgi-bin/twiki/view/PM/PugsFirstBlood>
* "Pugs SVN repository"<http://svn.openfoundry.org/pugs/>.
* "Parrot"<http://planet.parrotcode.org/>.
* "Parrot FAQ"<http://www.parrotcode.org/faq/>

^^^ Perl 5 modules implementing Perl 6 features:

* In Perl 5.9 (development branch) and Perl 5.10 (production release), "feature.pm"<http://search.cpan.org/~rgarcia/perl-5.9.3/lib/feature.pm> provides some Perl 6 features that you will be able to selectively turn on.
* There are many modules that currently implement parts of Perl 6 in Perl 5. Go to "CPAN"<http://search.cpan.org/> and do a "module search on perl6"<http://search.cpan.org/search?query=perl6&mode=module>.
* (Note: (<http://search.cpan.org/modlist/Perl6>) is missing many entries. Use the search above for the time being.)
* Some of these are listed on the "Perl 6"<http://perl.net.au/wiki/Perl_6> page.
* ....

^^ What are people doing with Perl 6?

* PITA — The Perl Image Testing Architecture (<http://ali.as/pita/>).
* Darren Duncan's work on a Perl 6 Relation type (as in relational algebra and data structures).
* ....

^^ Wiki 101

* If you'd like an *introductory tour* of the Socialtext Workspace, [start here].
* Visit *Recent Changes* every once in a while to see what's new, and see {link: help [Socialtext Documentation]} for tips to use this Workspace.
* Make links by putting words or phrases in square brackets. Click on *Edit This Page* to see some examples.


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.

Tag: 

Suggestions: