Perl functions can be invoked in two contexts: list and scalar. These contexts indicate what is to be done with the return value. Functions can return different values in list context than in scalar context. For instance, the grep()
function takes a list and a block or expression and filters out elements of the list for which the block or expression evaluates to false. The grep()
function returns the filtered list when called in list context, but when called in scalar context, it merely returns the size of this list. That is, it returns the number of elements for whichthe which the block or expression evaluates to true.
Some functions do not define what they return in list or scalar context. For instance, according to the {[perlfunc}} manpage, the sort()
function "sorts the LIST and returns the sorted list value. In scalar context, the behaviour behavior of 'sort()' is undefined."
...