Вы можете использовать все, что не воспринимается как голое слово.
Полностью квалифицированные имена работают.
Bool::True => 1
Причина, по которой они работают, - голые слова не имеют::
в них.
Так что вы также можете просто добавить ::
.
::True => 1
Вы можете использовать ::(…)
::(True) => 1
::('True') => 1
::< True > => 1
Вы также можете использовать ()
около True
.
(True) => 1
Вы можете объявить это задом наперед и использовать .antipair
( 1 => True ).antipair
( :foo ).antipair # (Bool::True) => 'foo'
Если вы не возражаете против получения последовательности, вы можете использовать .invert
,или .antipairs
# Seq.new( Bool::True => 1 )
( 1 => True ).invert
( 1 => True ).antipairs
# Seq.new( Bool::True => 1, Bool::False => 2 )
( 1 => True, 2 => False ).invert
( 1 => True, 2 => False ).antipairs
Если бы True
была подпрограммой вместо термина, вы можете добавить ()
sub True ( --> True ){}
True() => 1
Затем используйте Pair.new
.
Pair.new( True, 1 )