perl function s
The s///
operator in Perl is used to perform regular expression substitution on a string. It is often used to replace a pattern with a new string.
Here's an example of using s///
:
my $string = "The quick brown fox jumps over the lazy dog"; $string =~ s/brown/red/; print "$string\n"; # prints "The quick red fox jumps over the lazy dog"
In this example, the s///
operator is used to replace the first occurrence of the substring "brown" in the string $string
with the substring "red". The =~
operator is used to apply the substitution to $string
. The result is that "brown" is replaced with "red" in the string, and the modified string is printed.
You can also use regular expressions to match more complex patterns. Here's an example:
my $string = "The quick brown fox jumps over the lazy dog"; $string =~ s/quick\s(.+)\sfox/jumps over $1/; print "$string\n"; # prints "The jumps over brown dog"
In this example, the s///
operator is used to replace the substring "quick", followed by one or more whitespace characters, followed by any number of characters (.+
), followed by the substring "fox", with the string "jumps over", followed by the captured group ($1
), which is the characters between "quick" and "fox". The result is that the substring "quick brown fox" is replaced with "jumps over brown", and the modified string is printed.
Note that the s///
operator modifies the string in place. If you want to create a new string without modifying the original, you can assign the result to a new variable, like this:
my $string = "The quick brown fox jumps over the lazy dog"; my $new_string = $string =~ s/brown/red/r; print "$string\n"; # prints "The quick brown fox jumps over the lazy dog" print "$new_string\n"; # prints "The quick red fox jumps over the lazy dog"
In this example, the s///
operator is used to replace the substring "brown" with "red", and the r
flag is used to return the modified string without modifying the original. The result is that $new_string
contains the modified string, while $string
remains unchanged.