Questions Regarding Perl 6 Features

Asked By 0 points N/A Posted on -
qa-featured

What are the new features in Perl 6? What about the stability of Perl. Is the support for Perl hard to seek? When comparing to Java, Python, REXX, Scheme etc. with Perl, what are the benefits? Is there any difference in ‘perl’ and ‘Perl’?

SHARE
Answered By 80 points N/A #102623

Questions Regarding Perl 6 Features

qa-featured

Hi Pierce,

Below are the list of Perl 6 Features:

Subroutines, Parameters, and Typing

  • optional static type annotations (gradual typing)
  • proper parameter lists
  • user-defined operators
  • multi dispatch
  • named arguments
  • generics

OO

  • declarative classes with strong encapsulation
  • full OO exception handling
  • multi-dispatched methods (aka method overloading)
  • hierarchical construction and destruction
  • distributive method dispatch
  • method delegation
  • many widely useful objects/types
  • custom meta classes, meta object programming

Regexes (now Grammars)

  • LL and LR grammars (including a built-in grammar for Perl 6 itself, which is an overridable and reusable grammar)
  • named regexes
  • overlapping and exhaustive regex matches within a string
  • named captures
  • parse-tree pruning
  • incremental regex matching against input streams

Power Features from Functional Languages and Elsewhere

  • hypothetical variables
  • hyperoperators (i.e. vector processing)
  • function currying
  • junctions (i.e. superpositional values, subroutines, and types)
  • coroutines
  • lazy evaluation (including virtual infinite lists)
Things we have in Perl 5 which will just be better in Perl 6
  • better threading
  • better garbage collection
  • much better foreign function interface (cross-language support)
  • full Unicode processing support
  • string processing on various Unicode levels, including grapheme level
  • a built-in switch statement
  • macros (that are implemented in Perl itself)
  • user-definable operators (from the full Unicode set)
  • active metadata on values, variables, subroutines, and types
  • support for the concurrent use of multiple versions of a module
  • extensive and powerful introspection facilities (including of POD)
  • chained comparisons
  • a universally accessible aliasing mechanism
  • lexical exporting (via a cleaner, declarative syntax)
  • multimorphic equality tests
  • state variables
  • invariant sigils, plus twigils (minimalist symbolic "Hungarian")

Related Questions