assigning a list to a scalar variable returns the result as a total number of elements in a list

No. That's not right. Evaluating a list in a scalar context (by, for example, assigning it to a scalar) returns the last item in the list. Evaluating an array in scalar context returns the number of items in the array.