Tom Browder writes:
> Perl 5 source
> ==
>> my @aaa = qw( a b c d e f g );
>> for my $c (@aaa) {
>
> Perl::ToPerl6
> =
>> my @aaa = qw ( a b c d e f g );
>> for (@aaa) -> $c {
>
> Blue_Tiger
>
>> my @aaa = < a b c d e f g >;
>> for @aaa <-> $c {
>
> For the example Perl 5 input I like the Blue_Tiger translation, except
> I haven't so far found an description of the '<->' operator. Why
> would Blue_Tiger prefer it to the '->' operator which I've seen in all
> the examples I can remember seeing?
In Perl 5, the loop variable ($c) is an alias into the array, and changing its
value changes the the value in the array. In Perl 6, the array being worked on
is read-only by default, so in the Perl::ToPerl6 example, trying to change the
value of $c inside the loop would throw an error. Using the <-> operator (also
pointing back from the loop variable to the array) tells it to use the Perl 5
behavior, where the array can be changed by changing the loop variable.
--
Aaron -- aaron.baugher.biz