我想将字符串拆分为单词并将每个单词打印在单独的行上,因此我尝试了以下操作:
"foo bar baz".words>>.say
Run Code Online (Sandbox Code Playgroud)
然而,结果并不顺利:
baz
foo
bar
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
Hyperoperators 实际上确实按顺序返回结果。你的代码的问题是 hyperops 不是循环结构;他们是列表运算符。因此,无法保证它们的执行顺序,并且使用它们的代码好像是不正确的。如果您关心执行顺序,您应该使用这样的结构for来保证它。
例如,这
my @a = "foo bar baz".words>>.split("a");
Run Code Online (Sandbox Code Playgroud)
导致@a包含在您所期望的顺序的元件,无论在哪个计算每个元素的顺序的:
foo b r b z
Run Code Online (Sandbox Code Playgroud)