По умолчанию все эти операции работают с содержимым специальной переменной $_, анализируя и изменяя
его в соответствии с алгоритмом применяемой операции поиска, замены или транслитерации. Если же в
программе необходимо выполнить любую из указанных операций над содержимым некоторой другой переменной
или строковым литералом, то необходимо связать эту переменную или литерал с соответствующей операцией
сопоставления с образцом. Для этого в языке определены две операции связывания (=~ и !~), левым операндом
которых выступает переменная или строковый литерал, а правый операнд определяет одну из операций
сопоставления с образцом. Единственное различие между двумя операциями связывания заключается в
возвращаемом значении. Первая операция =~ возвращает булево значение «истина», если при выполнении
операции сопоставления с образцом в строке была найдена последовательность символов, определяемая
регулярным выражением, и «ложь» в противном случае. Возвращаемое значение операции !~ полностью
противоположно предыдущей операции связывания. Приведем несколько операций сопоставления с образцом и
связывания:
$_ = "My message";
s/My/Your/; # Переменная $_ теперь содержит строку
# "Your message"
$message = "Mу message";
$message =~ s/My/Your/; # Переменная $message теперь
# содержит строку "Your message",
# а результатом операции связывания
# является «истина»
$message =~ m/My/; # Возвращаете значение «ложь»
$message !~ m/My/; # Возвращаемое значение «истина»