On 0>> On Sun, Jun 3, 2018 at 6:33 PM ToddAndMargo <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 ];