Contents | Parent Topic | Previous Topic | Next Topic
Home | Catalog

# 2.8. Expressions

## 2.8.1. Introduction

Expressions are used in several places within SDF including:

- attribute values
- macro argument values
- filter parameter values
- evaluation within paragraph text.

The value of an expression can be placed into a paragraph by delimiting it with the special symbols [[ and ]]. For example:

       The current file is [[DOC_FILE]].

## 2.8.2. Types of expressions

An expression is either:

- an SDF variable name (e.g. DOC_AUTHOR)
- a Perl expression.

If an expression is a single word, it is the value of a variable. Otherwise, it is evaluated as a Perl expression. A Perl expression is typically one of the following:

- a numeric literal (e.g. <E>213</E>)
- a string literal (e.g. <E>"User Guide"</E>)
- a subroutine call (e.g. <E>length("User Guide")</E>).

## 2.8.3. Accessing variables within Perl expressions

Within a Perl expression, SDF variables are available via the var associative array. The syntax used by Perl for accessing a value within an associative array is:

      "$" array_name "{" string_index "}"

Some examples are:

1. get the length of the DOC_AUTHOR variable:

          length($var{'DOC_AUTHOR'})

1. concatenate the document name and type:

          "$var{'DOC_NAME'} $var{'DOC_TYPE'}"