See the current Perl documentation for lib:Symbol.
Here is our local, out-dated (pre-5.6) version:
Symbol - manipulate Perl symbols and their names
$sym = gensym;
$_ = <$sym>;
ungensym $sym; # no effect
print qualify("x"), "\n";
Symbol::gensym creates an anonymous glob and returns a reference to it. Such a glob
reference can be used as a file or directory handle.
For backward compatibility with older implementations that didn't support
Symbol::ungensym is also provided. But it doesn't do anything.
Symbol::qualify turns unqualified symbol names into qualified variable names (e.g.
``myvar'' -> ``MyPackage::myvar''). If it is given a second parameter,
qualify uses it as the default package; otherwise, it uses the package of its caller. Regardless, global variable names (e.g.
``SIG'') are always qualfied with ``main::''.
Qualification applies only to symbol names (strings). References are left
unchanged under the assumption that they are glob references, which are
qualified by their nature.
Symbol::qualify_to_ref is just like
Symbol::qualify except that it returns a glob ref rather than a symbol name, so you can use
the result even if
use strict 'refs' is in effect.
Symbol::delete_package wipes out a whole package namespace. Note this routine is not exported by
default--you may want to import it explicitly.