TACL Reference Manual

Variables
HP NonStop TACL Reference Manual429513-018
4-28
DIRECTORY Variables
Data retrieved from a substructure is presented in a space-separated list of standard
representations appropriate for the types of those items. Spaces are not inserted
between CHAR items, however.
These examples are based on the structure defined in Setting or Altering Structured
Data on page 4-25.
To access a data item, surround the structure and item names in square brackets. For
example:
== Access elements in a structure
[tacl^files:file(2):name] == yields taclbase
[tacl^files:file(1)] == yields tacl 100
== Access the entire structure structure
[tacl^files] == yields tacl 100 taclbase 101 taclinit 101
== Distribute structure items into variables
#SETMANY prg prgcd lib libcd mac maccd , [tacl^files]
== Copy a substructure to a substructure
#SET tacl^files:file(1) [tacl^files:file(2)]
To fill one STRUCT with data already present in another structure, use #SETBYTES.
You can use the #SETV built-in function to copy structures (as well as other types).
The output variable must already exist. After the data has been copied, the original
type and data of the output variable is lost; the variable becomes a structure like the
input structure and has its own copy of the data.
DIRECTORY Variables
Directory variables allow you to specify a hierarchical organization for variables that
reside in a segment file; directories can contain directories, which in turn can contain
other directories. The maximum nesting depth for directories is 16 levels. The root of
the tree is the home (:) character. TACL supplies the :UTILS directory, which includes
the :UTILS:TACL directory where all TACL variables reside.
Caution. If one or more of the elementary items consists of or contains spaces, be careful if
you later access this data with commands or functions that use spaces as delimiters;
otherwise, TACL might overlook an item.
Caution. Use care when moving data between structures and variables of other types unless
those variables are used with #SERVER or #REQUESTER or are merely temporary variables
for copying the data of one structure to another. TACL interprets data differently for STRUCT
variables than for other types of variables. For example, if you process such data with #DELTA
while the data is in a variable that is not a structure, #DELTA interprets any bytes holding
binary zero as line end characters, and reshapes the data into multiple lines when putting it
back into a variable. In short, do not process structure data outside a structure except to
perform I/O operations with it.