Contains the result of a string transformation.
StrDistance objects are used to represent the return of the string transformation operator.
say (($ = "fold") ~~ tr/old/new/).^name; # OUTPUT: «StrDistance»
A StrDistance object will stringify to the resulting string after the transformation, and will numify to the distance between the two strings.
my $str = "fold";
my $str-dist = ($str ~~ tr/old/new/);
say ~$str-dist; # OUTPUT: «fnew»
say +$str-dist; # OUTPUT: «3»
This is actually a class attribute, and called as a method returns the string before the transformation:
say $str-dist.before; # OUTPUT: «fold»
Also a class attribute, returns the string after the transformation:
say $str-dist.after; # OUTPUT: «fnew»
Returns True if before is different from after.
Returns the distance as a number.
multi method Int(StrDistance:D:)
Returns the distance between the string before and after the transformation.
multi method Str(StrDistance:D: --> Str)
Returns an after string value.
my $str-dist = ($str ~~ tr/old/new/);
say $str-dist.Str; # OUTPUT: «fnew»
say ~$str-dist; # OUTPUT: «fnew»