22 | | == aaaa == |
| 22 | Assignment statements are used to modify a part of the configuration tree by replacing the subtree |
| 23 | identified by its path by the result of the execution a DML block. This result can be a single property or a resource holding any number of elements. There are conditional and unconditional assignments: |
| 24 | {{{ |
| 25 | [ final ] path ?= dml; |
| 26 | [ final ] path = dml; |
| 27 | }}} |
| 28 | where the path is represented by a string literal. Single-quoted strings are slightly more efficient, but double-quoted strings work as well. The conditional form (`?=`) will only execute the DML block and assign a value if the named path does not exist or contains the undef value. |
| 29 | |
| 30 | The assignment will create parents of the value that do not already exist. |
| 31 | |
| 32 | If a value already exists, the pan compiler will verify that the new value has a compatible type. If not, it will terminate the processing with an error. |
| 33 | |
| 34 | == aaa == |