00:27 melezhik joined 00:28 melezhik left 05:12 ajr joined 06:41 ajr left 12:18 sm2 left 13:51 A26F64 joined
Nemokosch what's the idiomatic way to split a string by words? 16:24
[Coke] m: "this string".words.say 16:25
camelia (this string)
[Coke] m: dd "this string".words #better formatted
camelia ("this", "string").Seq
lizmat of course, that is dividing by whitespace, which you may not consider to be "words" 16:27
m: dd "this: string!".comb( / \w+ / ) 16:28
camelia ("this", "string").Seq
lizmat if you'd like the other interpretation of "words"
Nemokosch thankies 17:19
19:43 ajr joined 20:05 ajr left 20:17 ajr joined 20:22 ajr left 20:49 ajr joined 20:53 ajr left
And how do I get all the regex matches to a certain pattern? 21:03
[Coke] ? 21:04
Nemokosch like matchAll in Javascript 21:05
lizmat m: .say for "foo" ~~ m:g/./ # this perhaps? 21:07
camelia 「f」
「o」
「o」
lizmat m: .say for "foo".match(/./, :g) # or this ? 21:08
camelia 「f」
「o」
「o」
21:11 ajr joined
Nemokosch are they the same thing? 21:12
okay, I went with ~~ m:g// 21:32
this sets $/
so the iteration of $/ (which really looks like a list) is strange in this case 21:33
maybe this is because of the sigil
22:09 A26F64 left 22:11 sm2 joined
Morfent m:``` 22:34
say WHAT VAR 'foo' ~~ m:g/./;
say WHAT VAR $/;
```
Nemokosch can I just override it? 22:35
22:35 ajr left
Morfent the `Scalar`? 22:36
Nemokosch yes 22:37
Morfent m:```
say WHAT VAR $('foo' ~~ m:g/./);
say WHAT VAR $/<>;
```
22:47 ajr joined
Nemokosch what about @$/ ? 22:59
what about `@$/` ?
Morfent that would also work 23:03
Nemokosch cool 🙂 23:14
lizmat yeah, you should realize that $0 is just short for $/[0] and $<foo> if short for $/<foo> 23:17
m: $/ = { a => 42 }; dd $<a>
camelia Int % = 42
lizmat m: $/ = (1,2,3); dd $0
camelia 1
Nemokosch yes, I realized that 23:21
but in this case I wanted to loop over $/ because it was a list of matches 23:22
so I didn't even want to use $1 $2 etc
23:37 sm2 left
[Coke] m: for 'foo' ~~ m:g/./ -> $a { dd $a } 23:59
camelia Match.new(:orig("foo"), :from(0), :pos(1))
Match.new(:orig("foo"), :from(1), :pos(2))
Match.new(:orig("foo"), :from(2), :pos(3))