| | 120 | * `require ::Class::Literal` is no longer supported |
| | 121 | * The postfix infinite-range operator is no more; write `1..*` instead of `1...` |
| | 122 | * Experimental support for Software Transactional Memory and atomic blocks; the syntax is subject to change |
| | 123 | * Hash initializers now revert to bias-to-left behavior as in Perl 5: In `{X => 1, X => 2}`, the value of X is 2, not 1 |
| | 124 | * The `-M` command line switch can take import arguments: `pugs -Mlib=foo` |
| | 125 | * Using libraries from embedded Perl 5 can import functions now |
| | 126 | * Declarators no longer take qualified names: `our $Foo::x` is invalid |
| | 127 | * Assignment with non-obviously-scalar left-hand side is now in list context: `@a = 1,2,3` now parses as `@a = (1,2,3)` |
| | 128 | * Parse-time binding `::=` is now fully supported |
| | 129 | * Declarators can now occur at expression position: `my $x + my $y` works |
| | 130 | * `my $!x` is now recognized as an alternative spelling for `my $x` |
| | 131 | * Prototype objects: `my Dog $fifo` now assigns `::Foo` into `$fido` |
| | 132 | * Declarators are now strictly lexical: `{ $x++ unless my $x }` increments `$OUTER::x` |
| 145 | | |
| 146 | | == Backends |
| 147 | | |
| 148 | | === JavaScript backend |
| 149 | | |
| 150 | | |
| 151 | | === Parrot backend |
| 152 | | |
| 153 | | |
| 154 | | === PIL^N backend |
| 155 | | |
| 156 | | |
| 157 | | === Perl6-ObjectSpace |
| 158 | | |
| 159 | | |
| | 157 | * Chained assignments now return lvalues properly: `$x = %y = (1,2,3,4);` |
| | 158 | * `sub f (@x) {}` no longer confer slurpy context to its argument, so `f([1,2,3])` works now |
| | 159 | * `f(())` now passes `&f` an empty list, not `undef` |
| | 160 | * `%.foo` and `@.foo` now always flattens in argument lists |
| | 161 | * Invalid rules in embedded Parrot no longer triggers an uncatchable `exit` |
| | 162 | * Method invocant is `self` and `$?SELF` but no longer `$_` |