in reply to Can you guess the result? Is it a bug?

They should all pass as they each evaluate to a list with one element.

Update: And they do. :-) No, not a bug. Remove the parentheses around $test and they will all fail.

-sauoq
"My two cents aren't worth a dime.";
  • Comment on Re: Can you guess the result? Is it a bug?

Replies are listed 'Best First'.
Re^2: Can you guess the result? Is it a bug? (nits)
by tye (Sage) on Jul 31, 2003 at 04:50 UTC

    To be more precise, each is a list assignment in a scalar (boolean) context and list assignment in a scalar context evaluates to the number of items in the list on the right-hand side of the assignment.

                    - tye
Re: Re: Can you guess the result? Is it a bug?
by graff (Chancellor) on Jul 31, 2003 at 03:21 UTC
    Okay, but now there's a bit of a discrepancy (not a bug, I guess, but something to wonder about):

    Without the parens around "$test", the first two examples produce a warning:

    Found = in conditional, should be == at -e line 1.
    but the third example ("= undef") does not produce any warning. (I'm running 5.8.0, in case that makes a difference.)

      The warning is just trying to help you out so that you don't have an if that evaluates to a constant boolean value which these all do. Consider:

      ... if($val == 3); #versus ... if($val = 3);

      In the first is checks to see if $val is 3 and in the second it sets $val to be 3 and then checks $val for truth which in this case is always true. So for normal situations that line should just be:

      ...; $val=3;

      Which would have the same effect in my little sample program.

Re: Re: Can you guess the result? Is it a bug?
by BrowserUk (Patriarch) on Jul 31, 2003 at 02:27 UTC

    D'oh. {blush}


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Re: Re: Can you guess the result? Is it a bug?
by mojotoad (Monsignor) on Jul 31, 2003 at 23:30 UTC
    Eh? I thought a LIST would evaluate to it's final element in scalar context -- so in this case, they should evaluate to 0, '', and undef respectively.

    Only an ARRAY would eval to the number of elements...

    Am I missing something?

    Matt

      Am I missing something?

      Yes. See tye's reply to me in which he explains it more precisely than I did.

      -sauoq
      "My two cents aren't worth a dime.";