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]