Rindolf will support the class MyClass { ... } construct to designate package and file level namespaces. Its advantage over package would be that it can be nested:
class Hello { class Good { sub my_func { print "my_func is called!\n"; } }; sub another_func { print "another_func is called!\n"; } }; Hello::Good::my_func(); Hello::another_func(); # # prints: # my_func is called! # another_func is called!
This should make it more convenient that specifying package Hello;
and package Hello::Good;
and so forth.
Generally such classes are considered lightweight namespaces. They are visible to an outside package, however, may override other "global" packages. Moreover, an external package will first look for global packages before them.