lib:Symbol
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
use Symbol;
$sym = gensym; open($sym, "filename"); $_ = <$sym>; # etc.
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 anonymous globs,
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. ``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_ref
is just likeSymbol::qualify
except that it returns a glob ref rather than a symbol name, so you can use the result even ifuse 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.