Test2::Util::Stash - Utilities for manipulating stashes and globs.

- NAME
- DESCRIPTION
- EXPORTS
- SOURCE
- MAINTAINERS
- AUTHORS
- COPYRIGHT

# NAME

Test2::Util::Stash - Utilities for manipulating stashes and globs.

# DESCRIPTION

This is a collection of utilities for manipulating and inspecting package stashes and globs.

# EXPORTS

$stash = get_stash($package)

  Gets the package stash. This is the same as `$stash = \%Package::Name::`.

$sym_spec = parse_symbol($symbol)
$sym_spec = parse_symbol($symbol, $package)

  Parse a symbol name, and return a hashref with info about the symbol.

  `$symbol` can be a simple name, or a fully qualified symbol name. The sigil is optional, and `&` is assumed if none is provided. If `$symbol` is fully qualified, and `$package` is also provided, then the package of the symbol must match the `$package`.

  Returns a structure like this:

      return {
          name    => 'BAZ',
          sigil   => '$',
          type    => 'SCALAR',
          symbol  => '&Foo::Bar::BAZ',
          package => 'Foo::Bar',
      };

$glob_ref = get_glob($symbol)
$glob_ref = get_glob($symbol, $package)

  Get a glob ref. Arguments are the same as for `parse_symbol`.

$ref = get_symbol($symbol)
$ref = get_symbol($symbol, $package)

  Get a reference to the symbol. Arguments are the same as for `parse_symbol`.

$ref = purge_symbol($symbol)
$ref = purge_symbol($symbol, $package)

  Completely remove the symbol from the package symbol table. Arguments are the same as for `parse_symbol`. A reference to the removed symbol is returned.

$sig = slot_to_sig($slot)

  Convert a slot (like 'SCALAR') to a sigil (like '$').

$slot = sig_to_slot($sig)

  Convert a sigil (like '$') to a slot (like 'SCALAR').

# SOURCE

The source code repository for Test2-Suite can be found at https://github.com/Test-More/Test2-Suite/.

# MAINTAINERS

Chad Granum <exodist@cpan.org>

# AUTHORS

Chad Granum <exodist@cpan.org>

# COPYRIGHT

Copyright 2018 Chad Granum <exodist@cpan.org>.

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

See http://dev.perl.org/licenses/

Test2::Util::Stash - Utilities for manipulating stashes and globs.