В Perl 6 есть тип данных для создания перечислений — enum. Его использовать предельно просто:
enum colours <red yellow green>;
Так мы создали тип и три значения, которые теперь доступны как константы, но без сигилов:
say red; say green;
На печати появятся названия как они есть:
red green
Если необходимы числовые значения, используйте метод Int:
say red.Int; # 0 say yellow.Int; # 1 say green.Int; # 2
По умолчанию отсчет ведется с нуля, но это можно изменить, указав нужное значение первому элементу перечисления:
enum colours (red => 10, 'yellow', 'green'); say red; # red say green; # green say yellow; # yellow say red.Int; # 10 say yellow.Int; # 11 say green.Int; # 12
Обратите внимание, что Perl 6 понял, что первое значение — это пара red => 10, а дальше идут две строки, которые он не попытался объединить в пару yellow => 'green'.
Если необходимо, то можно сэкономить на кавычках, но при этом использовать чуть иные цитирующие кавычки:
enum colours << :red(10) yellow green >>;
Разумеется, можно присвоить свои значения каждому элементу:
enum colours (red => 10, yellow => 20, green => 30); say red.Int; # 10 say yellow.Int; # 20 say green.Int; # 30