in reply to Re: shift in list context buggy?
in thread shift in list context buggy?

> This isn't a "Perl design decision" to be regretted; it's a programmer error to be avoided.

nope it's inconsistent, and any breach of orthogonality is a pain in the *ss and should at least be better documented.

> And since you appear to want undef to be "a legal value", there is no value that shift could return to indicate that the array is now empty.

So according to you, the demonstrated code using splice is a programmers error!

Of course shift should return an empty array which is false.

And of course ($x)=() would result in $x=undef without being true. This would be consistent with Perl's usual behavior.

DB<196> $x=42 => 42 DB<197> ( ($x) = () ) ? "$x" : "false" => "false" DB<198> $x => undef

Please read the code examples already given before replying.

Cheers Rolf

( addicted to the Perl Programming Language)

update

expanded code

Replies are listed 'Best First'.
Re^3: shift in list context buggy?
by BrowserUk (Patriarch) on Nov 09, 2013 at 23:24 UTC
    So according to you, the demonstrated code using splice is a programmers error!

    WTF did you dream that incomprehensible conclusion up from?

    It is neither stated nor implied, nor logically derivable from anything I posted.

    You just made it up in an attempt to misdirect.

    Of course shift should return an empty array which is false.

    Why "of course"?

    splice can return multiple values, so when it has nothing to return, it makes sense to return an empty list.

    Conversely, shift can only ever return a single value; so why would it ever return a list. Even an empty one.

    Of course, it could return an empty list, and that would allow your construct to 'work'.

    But it doesn't and never has! And -- other than to make your peculiar construct work -- there is no reason why it should.

    Thus, it is your construct that is at fault.


    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.