I'm still troubled by the export trait as I read S11. I like not having to write a new subroutine in a procedural module and THEN go back up and edit @EXPORT. That's good.
But, it seems to me that: module MyHTML { # Wherein I pretend to have written an HTML module # but really just re-brand Perl5ish CGI.pm use CGI :html4; sub hr(...) is export; sub p(...) is export; ... } is a lot of work to go through, and it also requires that I correctly reproduce the prototypes (although if "..." worked as I have it above, then that would not be a concern). Can "is export" be applied to use? In other words: module MyHTML { use CGI :html4 is export; } Also, for those cases where you're writing a very large number of functions whose only purpose is to pollute the namespace of the caller (HTML is probably as good an example as any), it would be nice if I could set up "is export" as the default: module MyHTML does allexport { sub empty_element(str $n, @tags) is noexport { "<$n {join(" ",@tags)} />" } sub hr([EMAIL PROTECTED]) { empty_element('hr',@tags) } sub br([EMAIL PROTECTED]) { empty_element('br',@tags) } ... } I personally don't like this style of programming, but that doesn't mean it isn't used to good effect by others. -- â 781-324-3772 â [EMAIL PROTECTED] â http://www.ajs.com/~ajs