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; open($sym, "filename"); $_ = <$sym>; # etc.
ungensym $sym; # no effect
print qualify("x"), "\n";
Symbol::gensymcreates 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 anonymous globs,
Symbol::ungensymis also provided. But it doesn't do anything.
Symbol::qualifyturns unqualified symbol names into qualified variable names (e.g. ``myvar'' -> ``MyPackage::myvar''). If it is given a second parameter,
qualifyuses it as the default package; otherwise, it uses the package of its caller. Regardless, global variable names (e.g. ``STDOUT'', ``ENV'', ``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_refis just like
Symbol::qualifyexcept 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_packagewipes out a whole package namespace. Note this routine is not exported by default--you may want to import it explicitly.