in reply to Re^2: What's wrong with Perl 6?
in thread What's wrong with Perl 6?

Having done some tests, and it also seems to make perfect sense to me... the 2nd version, my @slice=@{$href}{'item1','item2'}; Is the only one which seems valid for the purpose at hand. The target is to get a hash slice, which is array (ahem, list) context, so @{$href} is what places it in that context, dereferencing as an array, to mimic @hash{'item1','item2'}

${$href} on the other hand attempts to dereference as a scalar, which, in my test, didn't yeild anything but undef:
#!/usr/local/bin/perl use strict; my %hash = map { chr(ord('@')+$_) => $_ } (1..26); my $hashref = \%hash; my @list = qw/A B L S Z/; my @slice = @{$hashref}{@list}; my $multi = ${$hashref}{@list}; print '@slice == ['. join(', ', @slice). "]\n"; print "\$multi == '$multi'\n" if defined $multi; print "\$multi == undef\n" if !defined $multi;
Output:
@slice == [1, 2, 12, 19, 26] $multi == undef
So it seems only one of these gets the desired result, and thus no ambiguity.