LanX> when scalar is applied to a list,
Here "list" is to be read as comma separated (literal) list. (see scalar comma separator)
Sorry for nitpicking but there is too much confusion. .
What confusion where (where is the confusion)? And how is this distinction important? In this case?
I think its unimportant , esp in this case, a distinction without a difference ... list literal or literal list is not even in perlglossary
A different demo of the "null list"
## a literal list in list context
$ perl -le " print( qw/ a b c d / )"
abcd
## a literal list in scalar context
$ perl -le " print( scalar qw/ a b c d / )"
d
## a literal list in lvalue list context
## a literal list in list context ( the left hand side list also hap
+pens to be an lvalue)
## a literal list in list assignment (list context )
$ perl -le " print( ( $q ) = qw/ a b c d / )"
a
## null list in scalar context counts, counting a list literal
$ perl -le " print( $q = () = qw/ a b c d / )"
4
## null list in scalar context counts, counting a "list"
$ perl -le " @f = qw/ a b c d /; print( $q = () = @f )"
4
## null list in scalar context counts
$ perl -le " print( scalar( () = qw/ a b c d / ) )"
4
## null list in list context discards (using literal list)
$ perl -le " print( () = qw/ a b c d / )"
## null list in list context discards (the array kind of list )
$ perl -le " @f = qw/ a b c d /; print( () = @f )"
|