What should this mean?

     package Foo;
     sub Bar::baz is export { ... }

The problem is in how callers request this export.

     use Foo <baz>;

Looks weird, as this demonstrates:

     package Foo;
     sub      baz is export { "I am Foo::baz" }
     sub Bar::baz is export { "I am Bar::baz" }

Clearly, if this is allowed at all, the use line should import Foo::baz.
But this looks wrong:

     use Foo <Bar::baz>

In fact the only way this makes sense to me at all is if Bar::baz had
already been exported by Bar, and now Foo wants to change the meaning of
that sub. The "is export" trait is just for formal signature matching /
documentation purposes then. What is the scope of this override?


Reply via email to