@Array Sigil

Expand values as an array

Description

The array token is used to tell Murex to expand the string as multiple parameters (an array) rather than as a single parameter string.

Examples

ASCII variable names

» $example = "foobar"
» out $example
foobar

Unicode variable names

Variable names can be non-ASCII however they have to be surrounded by parenthesis. eg

» $(比如) = "举手之劳就可以使办公室更加环保,比如,使用再生纸。"
» out $(比如)
举手之劳就可以使办公室更加环保,比如,使用再生纸。

Infixing inside text

Sometimes you need to denote the end of a variable and have text follow on:

» $partial_word = "orl"
» out "Hello w$(partial_word)d!"
Hello world!

Variables are tokens

Please note the new line (\n) character. This is not split using $:

» $example = "foo\nbar"

Output as a scalar ($):

» out $example
foo
bar

Output as an array (@):

» out @example
foo bar

Scalar and Array Sub-shells

Scalar:

» out ${ %[Mon..Fri] }
["Mon","Tue","Wed","Thu","Fri"]

Array:

» out @{ %[Mon..Fri] }
Mon Tue Wed Thu Fri

out will take an array and output each element, space delimited. Exactly the same how echo would in Bash.

Variable as a Command

If a variable is used as a commend then Murex will just print the content of that variable.

» $example = "Hello World!"

» $example
Hello World!

Detail

Infixing

Since arrays are expanded over multiple parameters, you cannot expand an array inside quoted strings like you can with a string variable:

» out "foo ${ ja [1..5] } bar"
foo ["1","2","3","4","5"] bar

» out "foo @{ ja [1..5] } bar"
foo  1 2 3 4 5  bar

» %(${ ja [1..5] })
["1","2","3","4","5"]   

» %(@{ ja: [1..5] })
@{ ja [1..5] } 

See Also


This document was generated from gen/parser/variables_doc.yaml.

This site's content is rebuilt automatically from murex's source code after each merge to the master branch. Downloadable murex binaries are also built with the website.

Last built on Wed Jan 15 23:07:50 UTC 2025 against commit b4c4296b4c429617fd41527ea0efef33c52c15ef2b64972.

Current version is 6.4.2063 (develop) which has been verified against tests cases.