Ah, I see the difference now.

I didn't realize that you could still do the export without being an
exporter.  With that distinction I understand.  HI is actually put into the
namespace if you are an exporter...if you are not, then HI remains in the
THGTest namespace.  Thanks for all you help in clarifying the issue.

Tanton
----- Original Message -----
From: "david" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, November 22, 2002 5:12 PM
Subject: Re: exporting Constants


> Tanton Gibbs wrote:
>
> > Sure it is, because you imported it from Test...I tried the following
>
> No, you can call (or use the constant) it without full qualifying it
doens't
> mean the function or the constant is in your namespace. as you said below,
> Perl has way of finding it from the Exporter interface. the function or
> constant still belongs to the package it's defined. when you import
> something, it only makes it available for you to use in your script. you
> don't need to fully qualify it because you said you are an
> Exporter(@ISA=qw(Exporter)). I don't use Exporter so I fully qualify it.
>
> how about a little experiment?
>
> #!/usr/bin/perl -w
> use strict;
>
> use THGTest qw(HI); #-- See I learn not to use Test :-) Thanks!
>
> print "$_: $::{$_}\n" for(keys %::);
>
> #--
> #-- Now do this:
> #--
> print "$_: $THGTest::{$_}\n" for(keys %THGTest::);
>
> __END__
>
> for the first for(...):
> see if you can find HI anywhere. You won't find it because it's not there!
> You still can use it but it doesn't belong to you.
>
> for the second for(...):
> you will see something like:
> HI: *Model::HI
>
> btw, @ISA=qw(Exporter) is not strictly neccessary but pretty much everyone
> agree it's a good thing to do for the reason mentioned above...
>
> david
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to