## Macro Command Reference

`perl [name]`

This command executes a Perl script.
If no `name` is given the inline Perl block will be used. This is a block in your macro starting with a line containing `PERL` and ending with a line containing `PERL`. The default timeout for Perl scripts is 10 seconds. After this time the Perl job will be killed to prevent never come back jobs. You can set the timeout individual with the `tasktimeout <sec>` macro command

The following variables and subroutines are available in your Perl script:

`&log()`

Send output to the console in the macro editor.

`@data[buffer][point number][column]`

A three dimensional array which should contain the data at the end of your script.
`[buffer]`: The number of the buffer (starting with 0)
`[point number]`: The number of the data points (starting with 0)
`[column]`: The column number (0 = X value, 1 = Y value, 2 = X error, 3 = Y error)

`@comment[buffer]`

In this array you can set comments for each imported buffer.

`@source[buffer]`

In this array you can set source information for each imported buffer.

`%var{key}`

If the script is started from a macro this hash contains all number variables. The variables will also be returned to the macro.

`%svar{key}`

If the script is started from a macro this hash contains all string variables. The variables will also be returned to the macro.

`Restrictions`

- Do not send anything to STDERR and STDOUT.
- Do not use any interactive things.