NAME
   Symbol::Util - Additional utils for Perl symbols manipulation

SYNOPSIS
     use Symbol::Util ':all';

     my $caller = caller;
     *{ fetch_glob("${caller}::foo") } = sub { "this is foo" };
     my $coderef = fetch_glob("${caller}::bar", "CODE");
     sub baz { 42; }
     export_glob($caller, "baz");

     print join "\n", keys %{ stash("main") };

     delete_glob("${caller}::foo", "CODE");

     use constant PI => 3.14159265;
     delete_sub "PI";   # remove constant from public API

     require YAML;
     export_package(__PACKAGE__, "YAML", "Dump");   # import YAML::Dump
     unexport_package(__PACKAGE, "YAML");   # remove imported symbols

     no Symbol::Util;   # clean all symbols imported from Symbol::Util

DESCRIPTION
   This module provides a set of additional functions useful for Perl
   symbols manipulation.

   `stash' and `fetch_glob' functions gets stash or glob without need to
   use `no strict 'refs''.

   `delete_glob' function allows to delete specific slot of symbol name
   without deleting others.

   `delete_sub' removes the symbol from class API. This symbol won't be
   available as an object method.

   `export_package' works like Exporter module and allows to export symbols
   from one package to other.

   `unexport_package' allows to delete previously exported symbols.

AUTHOR
   Piotr Roszatycki <[email protected]>

COPYRIGHT
   Copyright (C) 2009 by Piotr Roszatycki <[email protected]>.

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

   See http://www.perl.com/perl/misc/Artistic.html