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

%{ ... }[1,2] evaluates to a list or a scalar.

That doesn't evaluate to anything, it is a syntax error.

And the rest of the post is a straw man.


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^6: use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20 (*)
  • Download Code

Replies are listed 'Best First'.
Re^7: use feature 'postderef'; # Postfix Dereference Syntax is coming in 5.20 (*)
by ikegami (Patriarch) on Dec 01, 2013 at 17:23 UTC

    it is a syntax error.

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

    And the rest of the post is a straw man.

    Showing that sigils don't indicate the type of value returned is not a straw many to disproving that sigils indicate the type of the value returned.

      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.

        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