[Wellington-pm] 'enum' for Perl?
Cliff Pratt
enkidu at cliffp.com
Sun Apr 16 17:13:47 PDT 2006
Grant McLean wrote:
> On Sun, 2006-04-16 at 20:20 +1200, Cliff Pratt wrote:
>
>>Is there a way of doing enums in Perl?
>>
>>eg so that using the string ONE in a program has the same effect as using 1.
>>
>>exit ONE ; # exit 1
>
>
> You could say:
>
> use constant ONE => 1;
>
> Or you could simply use a variable:
>
> my $ONE = 1;
>
> Possibly with the addition of the Readonly module from CPAN:
>
> Readonly my $ONE => 1;
>
> When you have a number of possible values that you want to assign
> symbolic names to, variables are easiest, eg:
>
> my($IDLE, $WAITING, $CONNECTED, $RECEIVING, $DISCONNECTING) = (1..10);
>
> In that example, I declared an overly large range on the right of the
> assignment, so that I could easily add new states to the left as I
> needed them.
>
Thanks Grant,
I can see how that works, but some modules export what appear to be
variables, eg
use Glib qw(TRUE FALSE) ;
and you can then say, eg
my $debug = FALSE ;
Or is FALSE just a hidden subroutine that sets the return to the
appropriate value?
Cheers,
Cliff
--
http://barzoomian.blogspot.com
More information about the Wellington-pm
mailing list