Substitution and altering strings with regexes
Matching strings with a regex often extracts some information from the given data. Another common task is to replace parts of the text with different characters. In Perl 6, the s
built-in function does that.
It takes two arguments, a regex and a replacement. When a regex is applied to the source string and the pattern is matched, the part of the string that matches is replaced with the second argument.
Consider a simple example:
my $str = 'Its length is 10 mm'; $str ~~ s/<<mm>>/millimeters/; say $str; # Its length is 10 millimeters
The regex here, /<<mm>>/
, matches with the word mm
. The second part tells to replace it with the full name of the measurement unit. The replacement happens in-place and the original string is modified.
Traditionally, s
uses slashes as delimiters but different characters can be used. Look at the examples that do the same replacement as in the preceding code:
$str ~~ s|<<mm>>|millimeters...