Links: Next Previous Up Top

How do I use push_output?

The subroutine push_output(type[,data]) takes two arguments: the type, which is always required, and the data, which is needed for certain types of output. Table 3 lists the different types which you can push onto the output stack.

Table 3: Types for push_output


Type
'handle'
Data
a filehandle
Description
Send all output to the supplied filehandle.

Type
'file'
Data
a filename
Description
Open the supplied file for writing, erasing its current contents (if any), and send all output to it.

Type
'append'
Data
a filename
Description
Open the supplied file for writing and append all output to its current contents.

Type
'pipe'
Data
a shell command
Description
Pipe all output to the supplied shell command.

Type
'string'
Data
a string [optional]
Description
Append all output to the supplied string, which will be returned by pop_output.

Type
'nul'
Data
[none]
Description
Ignore all output.

Because the output is stack-based, you do not lose the previous output destination when you push a new one. This is especially convenient for dealing with data in tree-structures, like SGML data -- for example, you can capture the contents of sub-elements as strings, ignore certain types of elements, and split the output from one SGML parse into a series of sub-files. Here are some examples:

push_output('string');                  # append output to an empty string
push_output('file','/tmp/foo');         # send output to this file
push_output('pipe','mail webmaster');   # mail output to 'webmaster' (!!)
push_output('nul');                     # just ignore all output

Links: Next Previous Up Top

David Megginson <dmeggins@aix1.uottawa.ca>