IDL’s compound data types provide ways to organize and manage data values of any data type. There are no constants for compound data types; the actual data values contained in a variable of a compound data type will always be of one or more of the basic data types.

IDL provides the following compound data types:

Lists


Lists are ordered collections of values, where the individual list values can be of different data types. Lists can grow and shrink dynamically, and the data type of a given list element can be changed. For more information, refer to LIST.

Hashes


Hashes are ordered or unordered collections of key-value pairs, where the individual keys and values can be of different data types. Hashes can grow and shrink dynamically, and the data type of a given hash element can be changed. For more information, refer to DICTIONARY, HASH, or ORDEREDHASH.

Structures


Structures consist of one or more tag-value pairs, where the value associated with a given tag can be of any data type. Once a structure has been defined, no tags can be added or removed, and the data type of tag values cannot be changed. Structures are discussed in Structure References.

Pointers


Pointers are references to dynamically-allocated heap variables that can contain values of any data type. Heap variables are available at all IDL program levels; as a result, pointers can be used to easily make data available to multiple routines without copying.

Object References


Object references are references to special heap variables that contain IDL object structures.