>    >    $a = @b;
>    >
>    >    2. Pull a reference to @b (like Perl5's "$a = \@b")
>
> Yep. Scalar context eval of arrays, hashes, and subs produces a reference.

Perfect.

>    > Similarly, how about:
>    >
>    >    %c = @d;
>    >
>    > Does this:
>    >
>    >    1. Create a hash w/ alternating keys/vals like Perl5
>    >    2. Do the equivalent of "%c = \@d" in Perl5
>    >    3. Or the mystery meat behind Door #3
>
> This one's still less-than-certain. Definitely either 1 or 3 though.

The more I was thinking about it, it seems like #1 makes a good amount of
sense. If you think about it, you're talking likes-to-likes. When you assign
scalars, you're copying the single values. When you're copying list data
structs, you're copying multiple values.

  %a = @b;    # same as Perl 5
  @c = %d;    # same as Perl 5
  $e = $f;    # same as Perl 5
  $g = @h;    # Perl 5 $e = \@c

The real trick is what to do with these:

  %a = (%b, %c);
  %d = (@e, @f);

Or, horrors:

  %i = ($j, %k, @l);
  ($m, @n, $o) = (@p, $q, %r);

Jeez, this is getting complicated. ;-)

-Nate


Reply via email to