Drieux wrote:

> 
> On Wednesday, Nov 19, 2003, at 06:38 US/Pacific, Haim Ashkenazi wrote:
> 
>> Hi
>>
>> I'm writing a module to serve a script I'm writing and I was wondering
>> if
>> it's possible to add a constant to the @EXPORT array. I prefer not to
>> use
>> variables because these settings shouldn't be changed, but I want every
>> script that uses this module to be able to access these constants.
>>
>> I read somewhere that you can declare your constants like this:
>> *BLAH = \"blah blah";
>> and then export $BLAH.
>>
>> I tested it and it works, but I wanted to know if that's a good way of
>> doing
>> it, or there's a better one in terms of speed and memory usage.
> 
> well first off do you mean
> 
> use constant MY_CONSTANT => 82 ; # capitalizing them can help ID them.
> 
> { cf. perldoc constant }
> 
> which is how I put them into a production perl module.
> 
> Then think in terms of whether you want to have them
> always exported, eg @EXPORT, or can you 'bundle' them
> in %EXPORT_TAGS eg:
> 
> our %EXPORT_TAGS = ( 'all' => [ qw( .... ) ],
> 'constants' => [ qw(....) ],
> ....
> );
> 
> This way if some of the constants natively cluster with
> some of the functions, then you can think in terms of
> and code the 'traditional' form of
> 
> bail_out($thing,$poo,$err_num)
> if( my_got_error($that_return) == MY_CONSTANT );
> 
> which while 'traumatizing' some of the "c-coders" could
> be 'repositioned' for them as
> 
> if( my_got_error($that_return) == MY_CONSTANT ) {
> bail_out($thing,$poo,$err_num);
> }
> 
> Is that the sort of idea that you are looking at?
> or would the 'accessor' method be more interesting?
> 
> sub get_my_constant { MY_CONSTANT ; }
> 
> so that you could have
> 
> if ( $obj->my_got_error($that_return) == $obj->get_my_constant() ) {
> bail_out($thing,$poo,$err_num);
> }
I was talking about the first example, but I think I've made a mistake...
I tried to add the constant to to my @EXPORT (which was declared with "use
constant ...") and I've got an error. I was probably too quick to assume it
can't be done that way, instead of trying to figure out the error... 
I tried it again now and it works.

so, thanks

Bye
--
Haim

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

Reply via email to