put
Full Description
swirl
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:

  1. A string expression containing the element content format modifiers.
  2. 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.

Copyright © OmniMark Technologies Corporation, 1988-1998.