http://www.perlmonks.org?node_id=698498


in reply to Re: Secret Perl Operators: the boolean list squash operator, x!!
in thread Secret Perl Operators: the boolean list squash operator, x!!

Wouldn't it make more sense to have the contents of the square brackets the other way around? e.g:

@part = map defined $_->[0] ? @{$_}[(@$_>1?1:0)..$#{$_}] : (), [1 => 'http://example.net/app', 'extra'], [$is_admin_link => 'admin'], [$subsite], [1 => $mode], [$id], [$submode];

To my eyes, [ $condition => $value ] reads better.

Also allows you to do: [ $condition => $list, $of, $values ]

Replies are listed 'Best First'.
Re^3: Secret Perl Operators: the boolean list squash operator, x!!
by blazar (Canon) on Jul 18, 2008 at 15:08 UTC
    To my eyes, [ $condition => $value ] reads better.

    I personally believe that it's not that important: I gave a... wild shot, if you know what I mean. Of course one may want some sort of full fledged solution taking care of all possible cases. For the present situation, your expression is fine enough, but just that little much too complex wrt "mine." I may have used something like that too, of course.

    However, as a sort of justification, I was thinking much of the postponed condition in analogy with an if statement modifier, that can be thought of as an optional parameter and be there or not...

    Also allows you to do: [ $condition => $list, $of, $values ]

    And then again, one may want to do [ $value => @conditions ] instead: again It depends on the actual situation and there's not a clear-cut, all-encompassing answer. (There may be, if we wanted to make it into a real module, with a well thought API, and so on, but that's not the case...)

    --
    If you can't understand the incipit, then please check the IPB Campaign.