in reply to Re: How to find number of elements of an array from array reference
in thread How to find number of elements of an array from array reference

... or, you can use scalar...

Why? Scalar assignment always imposes scalar context.

... you can use int like...

Why? Scalar assignment always imposes scalar context, and an array in scalar context always evaluates to an integer.

Make it easy on yourself!

  • Comment on Re^2: How to find number of elements of an array from array reference

Replies are listed 'Best First'.
Re^3: How to find number of elements of an array from array reference
by jpl (Monk) on Apr 07, 2011 at 18:02 UTC

    Why? Scalar assignment always imposes scalar context.

    Perhaps the OP didn't want to do an assignment. Contrast

    @a = ( 42 ); printf("%d\n", @a); # prints 42 printf("%d\n", scalar(@a)); # prints 1
    I find it is seldom necessary to use scalar(), since I'm more likely to do assignment or conditional testing, where scalar context is implied. But scalar() has its place when the default is list context.

      I prefer 0 + @a in that case, to be explicit about numeric scalar context, but point taken.