Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought



Symbol(3)                                                            Symbol(3)



NAME
     Symbol - manipulate Perl symbols and their names

SYNOPSIS
         use Symbol;

         $sym = gensym;
         open($sym, "filename");
         $_ = <$sym>;
         # etc.

         ungensym $sym;      # no effect

         print qualify("x"), "\n";              # "Test::x"
         print qualify("x", "FOO"), "\n"        # "FOO::x"
         print qualify("BAR::x"), "\n";         # "BAR::x"
         print qualify("BAR::x", "FOO"), "\n";  # "BAR::x"
         print qualify("STDOUT", "FOO"), "\n";  # "main::STDOUT" (global)
         print qualify(\*x), "\n";              # returns \*x
         print qualify(\*x, "FOO"), "\n";       # returns \*x

         use strict refs;
         print { qualify_to_ref $fh } "foo!\n";
         $ref = qualify_to_ref $name, $pkg;


DESCRIPTION
     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 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.








                                                                        Page 1





Symbol(3)                                                            Symbol(3)























































                                                                        Page 2






Typewritten Software • bear@typewritten.org • Edmonds, WA 98026