Thanks for your correction! But the 3 first main usages of ~ is about match. I suggest ?-> is I believe the one of advantages which perl6 is better than perl5 is its consistency. take a look below:
~ means string, so ~$foo change $foo into string context, and $foo1 ~ $foo2 make a concatenation.
+/- means numeric, so +$foo change $foo into numeric context and $foo + 3 is doing mathematic operation.
and ? means bool, * means global etc.......
as we see, in perl6, every sigil has its own consistent meaning and easily for learning. I don't say ~> is bad, I just want every new grammar/op adding during perl5 evolved should keep consistent.
I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction