Home
Search Perl pages
Subjects
By activity
Professions, Sciences, Humanities, Business, ...
User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...
Text Strings
Conversions, tests, processing, manipulation,...
Math
Integer, Floating point, Matrix, Statistics, Boolean, ...
Processing
Algorithms, Memory, Process control, Debugging, ...
Stored Data
Data storage, Integrity, Encryption, Compression, ...
Communications
Networks, protocols, Interprocess, Remote, Client Server, ...
Hard World Timing, Calendar and Clock, Audio, Video, Printer, Controls...
File System
Management, Filtering, File & Directory access, Viewers, ...
|
|
|
The interpretation of operations and values in Perl sometimes depends on
the requirements of the context around the operation or value. There are
two major contexts: scalar and list. Certain operations return list values
in contexts wanting a list, and scalar values otherwise. (If this is true
of an operation it will be mentioned in the documentation for that
operation.) In other words, Perl overloads certain operations based on
whether the expected return value is singular or plural. (Some words in
English work this way, like ``fish'' and ``sheep''.)
In a reciprocal fashion, an operation provides either a scalar or a list
context to each of its arguments. For example, if you say
int( <STDIN> )
the integer operation provides a scalar context for the <
STDIN>
operator, which responds by reading one line from
STDIN and passing it back to the integer operation,
which will then find the integer value of that line and return that. If, on
the other hand, you say
sort( <STDIN> )
then the sort operation provides a list context for <
STDIN>, which will proceed to read every line available up to the end of file,
and pass that list of lines back to the sort routine, which will then sort
those lines and return them as a list to whatever the context of the sort
was.
Assignment is a little bit special in that it uses its left argument to
determine the context for the right argument. Assignment to a scalar
evaluates the righthand side in a scalar context, while assignment to an
array or array slice evaluates the righthand side in a list context.
Assignment to a list also evaluates the righthand side in a list context.
User defined subroutines may choose to care whether they are being called
in a scalar or list context, but most subroutines do not need to care,
because scalars are automatically interpolated into lists. See wantarray.
Source: Perl data types Copyright: Larry Wall, et al. |
Next: Scalar values
Previous: Variable names
(Corrections, notes, and links courtesy of RocketAware.com)
Up to: PERL
Rapid-Links:
Search | About | Comments | Submit Path: RocketAware > Perl >
perldata/Context.htm
RocketAware.com is a service of Mib Software Copyright 2000, Forrest J. Cavalier III. All Rights Reserved. We welcome submissions and comments
|