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/