Binding Operators
Binary "=~"
binds a scalar expression to a pattern match. Certain operations search or modify the string $_
by default. This operator makes that kind of operation work on some other string. The right argument is a search pattern, substitution, or transliteration. The left argument is what is supposed to be searched, substituted, or transliterated instead of the default $_
. When used in scalar context, the return value generally indicates the success of the operation. The exceptions are substitution (s///
) and transliteration (y///
) with the /r
(non-destructive) option, which cause the return value to be the result of the substitution. Behavior in list context depends on the particular operator. See Regexp Quote-Like Operators for details and perlretut for examples using these operators.
If the right argument is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. Note that this means that its contents will be interpolated twice, so
'\\' =~ q'\\';
is not ok, as the regex engine will end up trying to compile the pattern \
, which it will consider a syntax error.
Binary "!~"
is just like "=~"
except the return value is negated in the logical sense.
Binary "!~"
with a non-destructive substitution (s///r
) or transliteration (y///r
) is a syntax error.
Please login to continue.