Count occurrences of a substring: Difference between revisions

Line 2,600:
=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>sub count-substring($big, $little) { +$big.comb: ~/ :r $little / }
 
say count-substring("the three truths", "th"); # 3
say count-substring("ababababab", "abab"); # 42
 
say count-substring(123123123, 12); # 3</lang>
The <tt>~:r</tt> prefixadverb operatormakes convertsthe <tt>$little</tt>regex to"ratchet aforward" <tt>Str</tt>and ifskip itany isn'toverlapping already, andmatches. <tt>.comb</tt> - when given a <tt>StrRegex</tt> as an argument - returns instances of that substring. You can think of it as if the argument was a regex that matched the string literally <tt>/$little/</tt>. Also, prefix <tt>+</tt> forces numeric context in Raku (it's a no-op in Perl&nbsp;5). For the built in listy types that is the same as calling <tt>.elems</tt> method. One other style point: we now tend to prefer hyphenated names over camelCase.
 
=={{header|Red}}==