http://qs321.pair.com?node_id=725138


in reply to Re^6: Indirect variable name
in thread Indirect variable name

Ok, thx, this makes sence.

::MY might be what I tried to describe with %PAD stash, a dynamic symboltable for the current scope, making [cmod://PadWalker] obsolete. VERY GOOD! 8 )

And I think I can imagine what is meant lexical scoped packages, in perl 5 packages have no privacy at all, you can access them from everywhere. But if the packagename is scoped you may control it.

AFAIK In perl 5 packages are just referenced in the upper stash to be accessible in this namespace, so forming a global tree going up until the main stash %::. But scoping them lexically means to restrict in which scopes namespace they really are accessible. I LIKE this, too! 8 )

Thx for the insight!

Cheers Rolf

UPDATES: adjusting of PadWalker link

Replies are listed 'Best First'.
Re^8: Indirect variable name
by blazar (Canon) on Nov 21, 2008 at 18:50 UTC
    ::MY might be what I tried to describe with %PAD stash, a dynamic symboltable for the current scope, making padwalker obsolete.

    I personally believe that, as a side note, you may want to hyperlink to PadWalker by means of [mod://PadWalker], stressing incidentally that capitalization does matter.

    And I think I can imagine what is meant lexical scoped packages, in perl 5 packages have no privacy at all, you can access them from everywhere. But if the packagename is scoped you may control it.

    What a lexically scoped package is, after all, is clear and intuitive. But one point that perhaps I didn't stress enough is the following: if things are still like I claimed them to be, that is that lexical variables are implemented by means of a single magic package, then the latter must have a "slots" for... well, packages too, which sounded somewhat self-referential when I wrote my previous post. On a second thought, though, not just as much... More precisely, I don't see any issue with this circumstance any more. I don't know what I was thinking: anyway, before spending even the slightest braindrop on the subject, I'd like someone who knows better to pinpoint the key elements of it, which we just surfaced here.

    --
    If you can't understand the incipit, then please check the IPB Campaign.
      > stressing incidentally that capitalization does matter.

      well thats because I'm overcompensating my German instincts to capitalize every noun ... ; )

      > I'd like someone who knows better to pinpoint the key elements of it, which we just surfaced here.

      I don't "know" better, but my intuition is to think of a namespace as of a symboltable realized as a hash of symbols and values*. And a hash may contain references of other hashes.

      when you said lexvars will be realized as kind of pkgvar, you actually meant both will consistently be organised in such symboltables.

      with "our" and "my" you just bind the var-symbols of the code within the actual scope to such a symboltable.

      you're declaring in which "hash" the value of a symbol "$x" should be hold.

      hashes can be nested and they can have lexical scope ...

      just my understanding...

      Cheers Rolf

      UPDATES:

      * "realized" in the sense of the logic but not necessarily implementation.