William wrote:
> package MyConfig;
> use constant (DOCUMENT_ROOT => "/var/www/");
> require Exporter;
> our @ISA = qw(Exporter);
> our @EXPORT_OK = qw(DOCUMENT_ROOT); # This works
> #our @EXPORT_OK = (DOCUMENT_ROOT); # But this does not work
> 
> 1;
> 
> use MyConfig qw(DOCUMENT_ROOT);
> print DOCUMENT_ROOT;
> 
> # If I do not use qw , I will get error of "DOCUMENT_ROOT" is not exported by 
> the MyConfig module
> # Why is qw importance is so significance here ?
> # I thought qw is just a syntatic sugar of perl to make a list
> # Thank you.

That's correct. qw splits its parameter on whitespace, so

  qw(A B C)

is similar to

  split ' ', 'A B C'


So if you write

  use MyConfig 'DOCUMENT_ROOT';

or

  use MyConfig ('DOCUMENT_ROOT');

then your program will work as expected. But because you've defined the constant
DOCUMENT_ROOT to be "/var/www/"

  use MyConfig (DOCUMENT_ROOT);

is the same as saying

  use MyConfig ("/var/www/");

which is nonsense.

HTH,

Rob




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to