perlfunc root <P> Symbol - manipulate Perl symbols and their names <P> <HR> <P> <PRE> use Symbol; </PRE> <P> <PRE> $sym = gensym; open($sym, &quot;filename&quot;); $_ = &lt;$sym&gt;; # etc. </PRE> <P> <PRE> ungensym $sym; # no effect </PRE> <P> <PRE> print qualify(&quot;x&quot;), &quot;\n&quot;; <P> <CODE>Symbol::gensym</CODE> creates an anonymous glob and returns a reference to it. Such a glob reference can be used as a file or directory handle. <P> For backward compatibility with older implementations that didn't support anonymous globs, <CODE>Symbol::ungensym</CODE> is also provided. But it doesn't do anything. <P> <CODE>Symbol::qualify</CODE> turns unqualified symbol names into qualified variable names (e.g. ``myvar'' -&gt; ``MyPackage::myvar''). If it is given a second parameter, <CODE>qualify</CODE> uses it as the default package; otherwise, it uses the package of its caller. Regardless, global variable names (e.g. <FONT SIZE=-1>``STDOUT'',</FONT> <FONT SIZE=-1>``ENV'',</FONT> <FONT SIZE=-1>``SIG'')</FONT> are always qualfied with ``main::''. <P> 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. <P> <CODE>Symbol::qualify_to_ref</CODE> is just like <CODE>Symbol::qualify</CODE> except that it returns a glob ref rather than a symbol name, so you can use the result even if <CODE>use strict 'refs'</CODE> is in effect. <P> <CODE>Symbol::delete_package</CODE> wipes out a whole package namespace. Note this routine is not exported by default--you may want to import it explicitly. <HR>