Hi All

Can some tell me the correct way to create a PERL module that exports some
global configuration symbols which are used by orhter modules and programs
and include the 'use strict' statement.

The problem is that if I include the use strict; line in the module then I
must declare all my symbols with my. If however I declare the symbols using
my the values do not export correctly. For example, if I define a module as:

#######################################
#!/usr/bin/perl -w

package mylib;

use Exporter(); # use the exported module to handle exporting symbols
@ISA = qw(Exporter);
@EXPORT_OK = qw( $valuetoexport );

$valuetoexport = 'abc';

return 1;
########################################

and access the value in a program as follows:

########################################
#!/usr/bin/perl -w
use strict;
use mylib qw ($valuetoexport);
print "$valuetoexport\n";
########################################

then the value is passed to the importing program correctly. There is a
warning when the the 'mylib' module compiles saying that '$valuetoexport is
used only once possibly a typo'.

I want to include 'use strict' in the module definition but if I do that
then @ISA, @EXPORT_OK and $valuetoexport are all thrown out as needing a
package name. I tried including @ISA and @EXPORT_OK in a use vars statement
and declaring $valuetoexport with 'my' but I could not get the value to
export.

I suppose I could wrap the variables I wish to export into function calls in
an OO style of approach. Any suggestions much appreciated.

Best,

Bill Stennett


_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to