Syntax
put stream-name indexer? open-modifiers?
(& stream-name indexer? open-modifiers?)*
string-expression
Purpose
An action that writes the specified string-expression to one or more streams.
The string expression is evaluated only as needed, depending on its content:
- If it contains
file followed by a filename, the file will be read incrementally, allowing large files to be processed.
- If it contains a call to an
external source function , the function will be called when its text is required. The #current-output set inherited by the function is the streams being written to by the put . After this, text from the function will be read incrementally, so the information returned does not need to be stored in memory all at once.
- If it contains a stream-returning function call, the call will be executed when its text is required. The
#current-output set inherited by the function is the streams being written to by the put .
Only the following open-modifiers are premitted with put :
- A string expression containing the element content format modifiers.
- The
binary open modifier.
The specified open-modifiers replace the one currently in force. If no open-modifiers are specified, the ones currently in force are used.
Before writing text to the specified stream items, the put action saves the old #current-output set, and creates a new #current-output set consisting of the specified stream items. When the writing is complete, the previous #current-output is restored. This causes #current-output sets to be nested within each other. This useful feature is important when the string expression contains a %c operator.
#current-output may be given as one of the stream-names. In this case, the text is written to the set of streams that are currently active, as well as the other ones specified.
No modifiers can be specified for #current-output .
|