It's all spelled out here:
https://docs.raku.org/language/glossary#Adverbial_pair
Notice in particular that :foo means :foo(True) and :!foo means :foo(False).
Also see that
[...] other circumfix operators with their usual semantics can be used for
stating the value, e.g. :foo[…] for an array and :foo{…} for a hash or even
a Block.
Therefore :foo() means a Pair whose key is the string "foo" and whose value
is the empty list. Compare with :foo(1, 2, 3) which is the same as foo =>
(1, 2, 3).
On Tue, Nov 18, 2025 at 9:45 PM ToddAndMargo via perl6-users <
[email protected]> wrote:
> Hi All,
>
> I am a bit confused as to what colon pairs are actually doing:
>
> [0] > my $y=:abc;
> abc => True
> Why is this True and not Nil?
>
>
> [1] > my $y=:abc(123);
> abc => 123
> This I get.
>
>
> [2] > my $y=:abc();
> abc => ()
> Why is this () and not Nil?
>
>
> [3] > my $y=:abc(Nil);
> abc => Nil
> This I get
>
>
> Yours in Confusion,
> -T
>
>