Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Namespaces contiguous in the entirety

by broquaint (Abbot)
on Sep 28, 2005 at 10:09 UTC ( #495687=note: print w/ replies, xml ) Need Help??


in reply to Namespaces contiguous in the entirety

The package statement notifies the compiler what the following lexical scope's default namespace will be. Warning on the existence of that namespace seems a little arbitrary from that perspective.

HTH

_________
broquaint


Comment on Re: Namespaces contiguous in the entirety
Re^2: Namespaces contiguous in the entirety
by rir (Vicar) on Sep 28, 2005 at 13:47 UTC
    That is one way to look at it. I think it is more accurate to view it this way:
    1. The first package specific_name statement creates a namespace and enters it.
    2. Subsequent invocations simply reenter the namespace.
    Having had the challenge of trying to explain the difference between C declarations and definitions to newbies; I can see how losing the distinction in dwimery would appeal as design choice for a higher level language.

    My reply above to tanktalus gives more of my reason to view it this way.

    Be well,
    rir

      1. The first package specific_name statement creates a namespace and enters it.
      2. Subsequent invocations simply reenter the namespace.
      While you may view that as conceptually accurate, that is not really what happens, hence my confusion above. I don't think I've ever come across this being an issue, not least because I would imagine that if you called code on a class you thought had declared, when in fact you had redeclared an existing class, something would break rather loudly.

      I can't think of any obvious way to do this within perl, but as you say, it would probably fairly simple just to hack the perl source and recompile.

      HTH

      _________
      broquaint

        The obvious way is to examine all the COP nodes in the compiled program and see that packages don't appear in multiple files. This is test should fit inside of a few lines.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://495687]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2014-09-20 21:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (163 votes), past polls