tchrist@convex.com (Tom Christiansen) (11/08/90)
I just did this:
$foo'bar'glarch = 1;
and
print $foo'bar'glarch;
and the right thing happened!! In the debugger, 'V foo' says:
%_bar = (
glarch 'StB^S^H^PgH^A'
)
and "V foo'bar" says nothing at all.
On the other hand,
$foo'bar'glarch = 'red';
followed by
print $foo'bar'glarch;
still says 1.
Isn't that odd?
--tomlwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) (11/13/90)
In article <108383@convex.convex.com> tchrist@convex.com (Tom Christiansen) writes:
: I just did this:
:
: $foo'bar'glarch = 1;
:
: and
: print $foo'bar'glarch;
:
: and the right thing happened!! In the debugger, 'V foo' says:
:
: %_bar = (
: glarch 'StB^S^H^PgH^A'
: )
:
: and "V foo'bar" says nothing at all.
:
: On the other hand,
: $foo'bar'glarch = 'red';
: followed by
: print $foo'bar'glarch;
: still says 1.
:
: Isn't that odd?
Not really, considering that I've never really tried to implement or test
nested packages. There are a few hooks in there for it, but nobody's
found a good use for nested packages yet, so I haven't tried to make them
work.
Larryflee@guardian.cs.psu.edu (Felix Lee) (11/15/90)
Nested packages don't quite work.
package a'b; $c = 3;
$a'b'c = 4;
print $c;
prints 3, but
package a'_b; $c = 3;
$_a'b'c = 4;
print $c
prints 4.
Apparently, package x'y uses the symbol table %_main{"__x"}{"_y"},
while $x'y'z uses the symbol table %_main{"_x"}{"__y"}.
I'd like to see nested packages work right. The applications are
endless. For one, I could make enums live in their own namespace if
nested packages worked correctly. This is actually a symptom of lazy
typing; it's easier to type $color'red instead of $color_red.
One thing that's needed is a way of specifying a name relative to the
current package. How about, $main'x is an absolute name, but $'main'x
is a name relative to the current package. (This feels backwards
since Unix filenames follow the opposite rule...) Does this conflict
with current practice? $'x currently is the name "x" in the null
package. Does anyone use the null package?
--
Felixelw@netx.com (Edwin Wiles) (11/17/90)
In article <10341@jpl-devvax.JPL.NASA.GOV> lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) writes: >There are a few hooks in there for it, but nobody's found a good use for >nested packages yet, so I haven't tried to make them work. How about object oriented perl? Seems to me that you could probably do a pretty neat OOP if perl fully supported nested packages.... Enjoy! -- Prefered.: elw@netx.com Edwin Wiles Alternate: ...!grebyn!netex!elw NetExpress Inc., Suite 300, Who? Me?!? Responsible!?! Surely You Jest! Vienna, VA, USA 22182