Perl 6
The Long Perl 6 Super-Feature List: Revision 1
When it comes to embracing "embrace and extend", Perl 6 is exceptionally promiscuous in selectively borrowing from other languages (and Perl 6 is very tenacious about refining and generalizing their best ideas). Here is a brief summary of some notable Perl 6 features, starting from the list in "the FAQ"<>, plus a variety of additions and extensions:

* optional explicit strong typing
* proper parameter lists
* active metadata on values, variables, subroutines, and types
* declarative classes with strong encapsulation
* full OO exception handling
* support for the concurrent use of multiple versions of a module
* extensive and powerful introspection facilities (including of POD)
* LL and LR grammars (including a built-in grammar for Perl 6 itself)
* subroutine overloading
* multiple dispatch (multimethods)
* named arguments
* a built-in switch statement
* hierarchical construction and destruction
* distributive method dispatch
* method delegation
* named regexes
* overlapping and exhaustive regex matches within a string
* named captures
* parse-tree pruning
* incremental regex matching against input streams
* macros (that are implemented in Perl itself)
* full Unicode processing support
* user-definable operators (from the full Unicode set)
* chained comparisons
* a universally accessible aliasing mechanism
* lexical exporting (via a cleaner, declarative syntax)
* multimorphic equality tests
* state variables
* hypothetical variables
* hyperoperators (i.e. vector processing)
* function currying
* junctions (i.e. superpositional values, subroutines, and types)
* coroutines
* better threading
* better garbage collection
* much better foreign function interface (cross-language support)
* invariant sigils, plus twigils (minimalist symbolic "Hungarian")
* many widely useful objects/types
* lazy evaluation (including virtual infinite lists)
* "An overridable and reusable grammar"<>

Holy freaking cow! How can most mere-mortals contend with all this stuff? Well, the good news is that _you_ most likely _won't_ ever need to know (or use) much of this stuff. You can learn and use a moderate and comfortable subset of Perl 6 that meets your typical needs. However these features provide an extremely powerful toolkit for experts to produce modules and other tools that you can use (without you needing to know about their internal wiring and plumbing). Perhaps counterintuitively, many of these features will make Perl 6 substantially easier and simpler than Perl 5 for more advanced applications (once you get used to it). Many of these features will also help "future-proof" Perl 6 by providing many means of incorporating new extensions.

As you can see, Perl 6 thus takes the powerful evolutionary advantages of "hybrid vigor" to new extremes. First there was "extreme programming", now we have Perl 6, "the first extreme programming language". If you think our many friends, including {Ruby, Python, Smalltalk, Lisp, Haskell, and others}, are generally more {cool, powerful, productive, and fun} than {C, C++, Java, C#}, then you'll likely recognize Perl 6 as the new "top of the -food- tool chain" for practical high-powered fun.

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.