geo555: I don't see how this is unexpected - Nearly all languages that have a 
"namespace" or "module" concept restrict namespace/module names to valid 
identifiers. This is so the module can be referenced within the code.

  * Python allows running scripts with invalid identifiers, however it doesn't 
allow importing modules with invalid identifiers without import trickery. I 
believe Ruby also has a similar restriction.
  * C++ requires namespaces to be valid identifiers.
  * Java requires packages to be valid identifiers.



C and C++ both allow for _including_ files with arbitrary names, however that 
is because the inclusion is handled by the preprocessor - there is no way to 
use the name of an included file in the same way you would use a module name.

Reply via email to