in reply to Re^5: referencing slices - love that DWIM
in thread referencing slices - love that DWIM

Not sure what it would have to... :)

Yeah ... sometimes I get a bit literal about these things. My reasoning (undoubtedly flawed) is along the lines that the square brackets ([]) return a reference to whatever is within those brackets ... and if it's a list that's within those brackets (as stated by the docs), then those square brackets must be returning a reference to that list.

it returns a reference to an anonymous array which has been initialised with references to the list's individual elements/values

Something about that doesn't feel right to me. Do you mean "it returns a reference to an anonymous array which has been initialised with the list's individual elements/values" - and that, in this case, those "elements/values" are actually references ?

It's probably a bit confusing to be asking these sorts of questions in terms of the return of \(@foo). Surely there are simpler constructs that also return a list. Does, eg (1..10) return a list ?

Cheers,
Rob

Replies are listed 'Best First'.
Re^7: referencing slices - love that DWIM
by almut (Canon) on May 17, 2008 at 15:31 UTC
    Do you mean "it returns a reference to an anonymous array which has been initialised with the list's individual elements/values" - and that, in this case, those "elements/values" are actually references ?

    Depends on exactly which list we're talking about... I was referring to the original values stored in @foo, and you're presumably thinking of the values after the referencing operation \(...) has been applied — in a human language it's not as easy to express things clearly as it is in Perl :)

    Anyhow, the net effect of this is:

    my @foo = (1, 2, "foo"); my $bar = [\(@foo)]; use Data::Dumper; print Dumper $bar; __END__ $VAR1 = [ \1, \2, \'foo' ];

    IOW, "$bar->[2]" would produce something like SCALAR(0x814ec28), which you'd need to dereference (${$bar->[2]}) to get at the value "foo".

    And yes, (1..10) is a list.

      Depends on exactly which list we're talking about...

      Yes - we were talking about different lists.

      I think I start to see the light. Thanks almut, thanks Fletch.

      Cheers,
      Rob