In Allomorph§
See primary documentation in context for method subst-mutate.
method subst-mutate(Allomorph:D \SELF: |c)
Calls Str.subst-mutate on the invocant's Str value.
In Str§
See primary documentation in context for method subst-mutate.
NOTE: .subst-mutate is deprecated in the 6.d version, and will be removed in future ones. You can use subst with .= method call assignment operator or s/// substitution operator instead.
Where subst returns the modified string and leaves the original unchanged, it is possible to mutate the original string by using subst-mutate. If the match is successful, the method returns a Match object representing the successful match, otherwise returns Nil. If :nth (or one of its aliases) with Iterable value, :g, :global, or :x arguments are used, returns a List of Match objects, or an empty List if no matches occurred.
my $some-string = "Some foo"; my $match = $some-string.subst-mutate(/foo/, "string"); say $some-string; # OUTPUT: «Some string» say $match; # OUTPUT: «「foo」» $some-string.subst-mutate(/<[oe]>/, '', :g); # remove every o and e, notice the :g named argument from .subst
If a Regex $matcher is used, the $/ special variable will be set to Nil (if no matches occurred), a Match object, or a List of Match objects (if multi-match options like :g are used).