kurila113delta - what is new for Perl Kurila 1.13


NAME

kurila113delta - what is new for Perl Kurila 1.13


DESCRIPTION

This document describes differences between Perl Kurila 1.12 and Perl Kurila 1.13


Highlights In Perl Kurila 1.13

Values passed to subroutines or elements of an array or hash are no longer restricted to being a scalar, but can also be arrays or hashes. Making it possible to use complete data structures without needing references.


Core Enhancements

Values can be any type

A value can be a plain-value, array or hash. There are no distinctions between. The sigils are meaningless, and don't indicate anything containing the type

Rationale

Removes many unnecessary needs for references.

expand operator <

Arrays are no longer automaticly expanded to a list. The expand operator < should be used to expand an array to a list.

Rationale

Because types are no longer indicated by their sigil, they can't be automaticly expanded, so a special operator to expand a array is needed.

Subroutines always return a scalar; wantarray keyword removed

Subroutines always return a scalar, and behave as if called in scalar context. As a consequence the wantarray keyword has been removed.

Rationale

Because a subroutine can return an array, returning a list is not really needed and would only be confusing.

New operators nelems and nkeys

nelems returns the number of elements of an array. nkeys returns the number of keys in a hash.

Rationale

Because a array of hash in scalar context would just be the array of hash new operators are needed to return the number of elements in an array or hash.

Only Hashes can be tied

Scalars, arrays and handles can no longer be tied.

Rationale

Tied hashes are currently too much used to be easily be removed, so they are still allowed.


=head2 Forward subroutine declarations are no longer supported.

Rationale

The don't really do anything.


KNOWN BUGS

Documentation

Documentation has not been updated for many of the changes for kurila.

Extensive use of lists

Lists are used in a lot of places where arrays are probably more appropriate.

Self referential assignment problems

Assigning some value to a part of itself behaves unexpected.

Tied hashes with complex data

Tied hashes do not work correctly with complex data structures. Assigning arrays or hashes to a value of tied hash might behave strange.

Limited platform support

Perl Kurila has only been tested/build for x86_64-linux-gnu-thread-multi platform.


SEE ALSO

The INSTALL file for how to build Perl Kurila.

The README file for general stuff.

The Artistic and Copying files for copyright information.


HISTORY

Written by Gerard Goossen <gerard@tty.nl>.

 kurila113delta - what is new for Perl Kurila 1.13