[Chapter 3] 3.5 Scalar and List Context
Author: Randal Schwartz, Tom Christiansen & Larry Wall
Date: 1999-07-02T01:32:20Z

#

| Chapter 3 Arrays and List Data |

## 3.5 Scalar and List Context

As you can see, each operator and function is designed to operate on some specified combination of scalars or lists, and returns either a scalar or a list. If an operator or function expects an operand to be a scalar, we say that the operand or argument is being evaluated in a scalar context. Similarly, if an operand or argument is expected to be a list value, we say that it is being evaluated in a list context.

Normally, this is fairly insignificant. But sometimes you get completely different behavior depending on whether you are within a scalar or a list context. For example, `@fred` returns the contents of the `@fred` array in a list context, but the length of the same array in a scalar context. These subtleties are mentioned when each operator and function is described.

A scalar value used within a list context is promoted to a single-element array.

3.4 Array Operators and Functions |  | 3.6 <STDIN> as an Array