---
name: "PPI::Token::Symbol"
section: "3pm"
platform: "linux"
package: "perl-ppi"
version: "1.291-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PPI::Token::Symbol"
---

# PPI::Token::Symbol(3pm)

A token class for variables and other symbols

## NAME

PPI::Token::Symbol - A token class for variables and other symbols

## INHERITANCE

```
  PPI::Token::Symbol
  isa PPI::Token
      isa PPI::Element
```

## DESCRIPTION

The `"PPI::Token::Symbol"` class is used to cover all tokens that represent variables and other things that start with a sigil.

## METHODS

This class has several methods beyond what is provided by its PPI::Token and PPI::Element parent classes.

Most methods are provided to help work out what the object is actually pointing at, rather than what it might appear to be pointing at.

### canonical

The `"canonical"` method returns a normalized, canonical version of the symbol.

For example, it converts `"$ ::foo'bar::baz"` to `$main::foo::bar::baz`.

This does not fully resolve the symbol, but merely removes syntax variations.

### symbol

The `"symbol"` method returns the ACTUAL symbol this token refers to.

A token of `$foo` might actually be referring to `@foo`, if it is found in the form `$foo[1]`.

This method attempts to resolve these issues to determine the actual symbol.

Returns the symbol as a string.

### raw\_type

The `"raw_type"` method returns the **apparent** type of the symbol in the form of its sigil.

Returns the sigil as a string.

### symbol\_type

The `"symbol_type"` method returns the **actual** type of the symbol in the form of its sigil.

Returns the sigil as a string.

## SUPPORT

See the support section in the main module.

## AUTHOR

Adam Kennedy \<adamk@cpan.org\>

## COPYRIGHT

Copyright 2001 - 2011 Adam Kennedy.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.
