Perl6::Variables - Perl 6 variable syntax for Perl 5


NAME

Perl6::Variables - Perl 6 variable syntax for Perl 5


VERSION

This document describes version 0.01 of Perl6::Variables, released May 17, 2001.


SYNOPSIS

        use Perl6::Variables;
        sub show { print @_[0], @_[1..$#_], "\n" }
        my %hash  = (a=>1, b=>2, z=>26);
        my @array = (0..10);
        my $arrayref = \@array;
        my $hashref = \%hash;
        show %hash;
        show @array;
        show $hashref;
        show $arrayref;
        show %hash{a};
        show %hash{a=>'b'};
        show %hash{'a','z'};
        show %hash{qw(a z)};
        show @array[1];
        show @array[1..3];
        show @array[@array];
        show $hashref{a};
        show $hashref{a=>'b'};
        show $hashref{'a','z'};
        show $hashref.{qw(a z)};
        show $arrayref[1];
        show $arrayref[1..3];
        show $arrayref.[@array];


DESCRIPTION

The Perl6::Variables module lets you try out the new Perl variable access syntax in Perl 5.

That syntax is:

        Access through...       Perl 5          Perl 6
        =================       ======          ======
        Scalar variable         $foo            $foo
        Array variable          $foo[$n]        @foo[$n]
        Hash variable           $foo{$k}        %foo{$k}
        Array reference         $foo->[$n]      $foo[$n] (or $foo.[$n])
        Hash reference          $foo->{$k}      $foo{$k} (or $foo.{$k})
        Code reference          $foo->(@a)      $foo(@a) (or $foo.(@a))
        Array slice             @foo[@ns]       @foo[@ns]
        Hash slice              @foo{@ks}       %foo{@ks}


DEPENDENCIES

The module is implemented using Filter::Simple and requires that modules to be installed.


AUTHOR

Damian Conway (damian@conway.org)


BUGS

This module is not designed for serious implementation work.

It uses some very simple heuristics to translate Perl 6 syntax back to Perl 5. It will make mistakes, if you get even moderately tricky inside a subscript. It's only 20 lines long, for crying out loud.

Nevertheless, bug reports are most welcome.


COPYRIGHT

Copyright (c) 2001, Damian Conway. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)

 Perl6::Variables - Perl 6 variable syntax for Perl 5