@@ -69,21 +69,6 @@ colon: C<$Package::Variable>. If the package name is null, the
6969C<main> package is assumed. That is, C<$::sail> is equivalent to
7070C<$main::sail>.
7171
72- The old package delimiter was a single quote, but double colon is now the
73- preferred delimiter, in part because it's more readable to humans, and
74- in part because it's more readable to B<emacs> macros. It also makes C++
75- programmers feel like they know what's going on--as opposed to using the
76- single quote as separator, which was there to make Ada programmers feel
77- like they knew what was going on. Because the old-fashioned syntax is still
78- supported for backwards compatibility, if you try to use a string like
79- C<"This is $owner's house">, you'll be accessing C<$owner::s>; that is,
80- the $s variable in package C<owner>, which is probably not what you meant.
81- Use braces to disambiguate, as in C<"This is ${owner}'s house">.
82- X<::> X<'>
83-
84- Using C<'> as a package separator is deprecated and will be removed in
85- Perl 5.40.
86-
8772Packages may themselves contain package separators, as in
8873C<$OUTER::INNER::var>. This implies nothing about the order of
8974name lookups, however. There are no relative packages: all symbols
@@ -94,6 +79,9 @@ C<$OUTER::INNER::var>. C<INNER> refers to a totally
9479separate global package. The custom of treating package names as a
9580hierarchy is very strong, but the language in no way enforces it.
9681
82+ Previously you could use C<'> as a package separator, this was removed
83+ in Perl 5.42.
84+
9785Only identifiers starting with letters (or underscore) are stored
9886in a package's symbol table. All other symbols are kept in package
9987C<main>, including all punctuation variables, like $_. In addition,
0 commit comments