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.
There is an important difference between a list and an array.
# Assign a list to a scalar
my $scalar = ('A', 'B', 'C');
print "$scalar\n"; # $scalar is C
# Assign an array to a scalar
my @array = ('A', 'B', 'C');
$scalar = @array;
print "$scalar\n"; # $scalar is 3