Учитывая перечисление
enum NATO (:alpha<A>, :bravo<B>, :charlie<C>, :delta<D>);
, можно легко установить переменную, буквально набрав одно из имен или передав одно из значений объекту enum:
my $a = alpha;
my $b = NATO('B');
say $a; # ↪︎ alpha
say $b; # ↪︎ bravo
say $a.value; # ↪︎ A
say $b.value; # ↪︎ B
Помимо использования EVAL
и получения Str
, которое соответствует одному из перечислений, как я могу создать $c
, чтобы быть значением перечисления, эквивалентным charlie
?
my $x = 'charlie';
my $c = ...