This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove #ifdef USE_ITHREADS around MUTEX_* calls
[perl5.git] / lib / Symbol.pm
index 98fb676..0e8d67f 100644 (file)
@@ -9,7 +9,7 @@ Symbol - manipulate Perl symbols and their names
     use Symbol;
 
     $sym = gensym;
-    open($sym, "filename");
+    open($sym, '<', "filename");
     $_ = <$sym>;
     # etc.
 
@@ -18,8 +18,8 @@ Symbol - manipulate Perl symbols and their names
     # replace *FOO{IO} handle but not $FOO, %FOO, etc.
     *FOO = geniosym;
 
-    print qualify("x"), "\n";              # "Test::x"
-    print qualify("x", "FOO"), "\n"        # "FOO::x"
+    print qualify("x"), "\n";              # "main::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)
@@ -34,7 +34,6 @@ Symbol - manipulate Perl symbols and their names
     delete_package('Foo::Bar');
     print "deleted\n" unless exists $Foo::{'Bar::'};
 
-
 =head1 DESCRIPTION
 
 C<Symbol::gensym> creates an anonymous glob and returns a reference
@@ -68,6 +67,15 @@ C<Symbol::delete_package> wipes out a whole package namespace.  Note
 this routine is not exported by default--you may want to import it
 explicitly.
 
+=head1 BUGS
+
+C<Symbol::delete_package> is a bit too powerful. It undefines every symbol that
+lives in the specified package. Since perl, for performance reasons, does not
+perform a symbol table lookup each time a function is called or a global
+variable is accessed, some code that has already been loaded and that makes use
+of symbols in package C<Foo> may stop working after you delete C<Foo>, even if
+you reload the C<Foo> module afterwards.
+
 =cut
 
 BEGIN { require 5.005; }
@@ -77,7 +85,7 @@ require Exporter;
 @EXPORT = qw(gensym ungensym qualify qualify_to_ref);
 @EXPORT_OK = qw(delete_package geniosym);
 
-$VERSION = 1.04;
+$VERSION = '1.08';
 
 my $genpkg = "Symbol::";
 my $genseq = 0;