The question you asked was why putting sub RunInTerm in RunInTerm.pm6 did
not declare a name RunInTerm::RunInTerm, it only declared a name RunInTerm.
You even provided a specific example of this question.

If you had a different question in mind, try asking it again.

On Sun, Jun 3, 2018 at 7:40 PM ToddAndMargo <toddandma...@zoho.com> wrote:

> >> On Sun, Jun 3, 2018 at 7:17 PM ToddAndMargo <toddandma...@zoho.com
> >> <mailto:toddandma...@zoho.com>> wrote:
> >>
> >>
> >>     On 0>> On Sun, Jun 3, 2018 at 6:33 PM ToddAndMargo
> >>     <toddandma...@zoho.com <mailto:toddandma...@zoho.com>
> >>      >> <mailto:toddandma...@zoho.com <mailto:toddandma...@zoho.com>>>
> >>     wrote:
> >>      >>
> >>      >>     On 06/03/2018 03:24 PM, Brandon Allbery wrote:
> >>      >>      > It is allowed if you have 'unit module RunNoShell;' at
> >>     the top of
> >>      >>      > RunNoShell.pm6. Otherwise you defined it in the main
> >>     namespace and
> >>      >>      > looking for it in the RunNoShell namespace will fail.
> >>      >>      >
> >>      >>      > Perl 5 does the same thing fi you omitted 'package
> >>     RunNoShell;'
> >>      >>     at the
> >>      >>      > top of RunNoShell.pm.
> >>      >>      >
> >>      >>
> >>      >>     The name of the file is `RunNoShell.pm`
> >>      >>
> >>      >>     It has two exported subs:
> >>      >>            sub RunNoShellErr ( $RunString ) is export
> >>      >>            sub RunNoShell ( $RunString ) is export
> >>      >>
> >>      >>     If I place
> >>      >>            unit module RunNoShell;
> >>      >>
> >>      >>     at the top, what happens?
> >>      >>           All subs get exported?
> >>      >>           Do I have to import them differently
> >>      >>
> >>      >>
> >>      >> What happens is your two subs get the full names
> >>      >>
> >>      >>      RunNoShell::RunNoShellErr
> >>      >>      RunNoShell::RunNoShell
> >>      >>
> >>      >> Without those lines, their full names are
> >>      >>
> >>      >>      MAIN::RunNoShellErr
> >>      >>      MAIN::RunNoShell
> >>
> >>     6/03/2018 03:54 PM, Brandon Allbery wrote:
> >>      >
> >>      > Since you are explicitly running RunNoShell::RunNoShell, you get
> an
> >>      > error with the second because there is no sub by that name.
> >>      >
> >>      > Again, this is no different from Perl 5 if you forget to include
> >>      > 'package RunNoShell;' And this matters only in the case where you
> >>      > explicitly asked for RunNoShell::RunNoShell instead of just
> >>     RunNoShell,
> >>      > which importing handles for you.
> >>
> >>
> >>     My main reason for wanting to know this is for maintaining my
> >>     code.
> >>
> >>     In Perl 5
> >>           use Term::ANSIColor qw ( BOLD BLUE RED GREEN RESET );
> >>
> >>     I can do a simple search to figure our where the heck
> >>     (may not be my "actual" word) `BOLD` came from.
> >>
> >>     If I want to doubly make sure I know where things came from,
> >>     I can write
> >>             Term::ASNIColor::BOLD
> >>
> >>     I have no such option in Perl 6 to do this.  This is the ONLY
> >>     thing I like better in p5 that is better than p6.  (Perl 5's
> >>     sub declarations are a nightmare.)
> >>
> >>     So I am looking for a substitute way of doing this.  So
> >>     back to my original question:
> >>
> >>
> >>     The name of the file is `RunNoShell.pm`
> >>
> >>     It has two exported subs:
> >>            sub RunNoShellErr ( $RunString ) is export
> >>            sub RunNoShell ( $RunString ) is export
> >>
> >>     If I place
> >>            unit module RunNoShell;
> >>
> >>     at the top, what happens?
> >>           All subs get exported?
> >>           Do I have to import them differently
> >>
> >>                  Old way:
> >>                      use RunNoShell;  # qx[ RunNoShell ];
>
> On 06/03/2018 04:22 PM, Brandon Allbery wrote:
> > You have misunderstood. The reason you can do that in Perl 5 is because
> > Term/ANSIColor.pm starts with
> >
> >      package Term::ANSIColor;
> >
> > It has nothing to do with what you named the file, it is a matter of
> > namespaces. And Perl 5 and Perl 6 behave mostly the same here (Perl 6
> > has a few more options). Neither one will create a new namespace just
> > because you stuck something in a different file; you must in both cases
> > specify the namespace ("package: in Perl 5, "unit module" in Perl 6).
> >
>
> Not sure why you did not answer my question.  Maybe I am just confused.
>


-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

Reply via email to