September 2017
Beginner
402 pages
9h 52m
English
The :g adverb is used for global matching. The regex will be applied to the string a few times, each time starting from the position where the previous match stopped.
For example, let us split a sentence into separate words:
my @words = 'Hello, World!' ~~ m:g/ (\w+) /;say join ';', @words; # Hello;World
Remember the example with of extracting HTML attributes from the The Match object section of this chapter. To get two values, the regex contained two copies of the same pattern:
my $str = q{<a href="index.html" class="menu">};$str ~~ / \" (.*?) \" .* \" (.*?) \" /;
To avoid that and make the regex more generic, use global matches:
my $str = q{<a href="index.html" class="menu">};$str ~~ m:g/ \" .+? \" /;say ~$/;
This program prints ...