in reply to Re^7: use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20 (*)
in thread use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20

it is a syntax error.

Depends on your version of Perl. It's called a index-value slice. It returns key,val,key,val,...

Really? In which release of perl did that work then?:

C:\test>\perl5.18\bin\perl -E"my %h=1..10; my $r = \%h; print %{ $r }[ + 1,2 ];" syntax error at -e line 1, near "}[" Execution of -e aborted due to compilation errors. C:\test>\perl5.18\bin\perl -E"my @a=1..10; my $r = \@a; print %{ $r }[ + 1,2 ];" syntax error at -e line 1, near "}[" Execution of -e aborted due to compilation errors.

Or is this a preview of Yet Another Mis-Feature that'll have to be deprecated in a year or so?

It will be sad indeed to see Perl die as a result of self-inflicted injuries.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re^8: use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20 (*)
  • Download Code

Replies are listed 'Best First'.
Re^9: use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20 (*)
by tobyink (Canon) on Dec 01, 2013 at 19:18 UTC

    Perl 5.19.4 and above. With hashes it seems fairly useful...

    sub new { my ($class, %args) = @_; my $self = { %args{"foo", "bar", "baz"} }; bless $self, $class; }

    Used on arrays, a la %arr[1,2,3] it seems less so.

    See also

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name