---
name: "Text::MicroMason::AllowGlobals"
section: "3pm"
platform: "linux"
package: "libtext-micromason-perl"
version: "2.23-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::MicroMason::AllowGlobals"
---

# Text::MicroMason::AllowGlobals(3pm)

Share package vars between templates

## NAME

Text::MicroMason::AllowGlobals - Share package vars between templates

## SYNOPSIS

Instead of using this class directly, pass its name to be mixed in:

```
    use Text::MicroMason;
    my $mason = Text::MicroMason->new( -AllowGlobals );
```

Share package variables:

```
    $mason->set_globals( '$name' => 'Bob' );
```

Use the standard compile and execute methods to parse and evaluate templates:

```
  print $mason->compile( text=>$template )->();
  print $mason->execute( text=>$template );
```

Then, in a template, you can refer to those globals:

```
    Welcome, <% $name %>!
```

## DESCRIPTION

### Public Methods

- **set\_globals()**

  Accepts a list of pairs of global variable names and corresponding values.

  Adds each variable name to the allowed list and sets it to the initial value.

- **allow\_globals()**

  Gets or sets the variables names to be allowed.

  If called with arguments, adds them to the list.

  Returns the variables to be allowed as a list, or as a space-separated string in scalar context.

### Supported Attributes

- allow\_globals

  Optional array or space-separated string of global variable names to be allowed.

### Private Methods

- **assemble()**

  Adds the allow\_globals\_statement to each token stream before assembling it.

- **allow\_globals\_statement()**

  This method prepends the "use vars" statement needed for the template subroutines to compile.

## SEE ALSO

For an overview of this templating framework, see Text::MicroMason.

This is a mixin class intended for use with Text::MicroMason::HTMLMason.

For distribution, installation, support, copyright and license  information, see Text::MicroMason::Docs::ReadMe.
