Экранирование специальных символов в регулярных выражениях Perl
Я пытаюсь сопоставить регулярное выражение в Perl. Мой код выглядит следующим образом:
my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/$pattern/) {
print "Match found!"
}
Проблема возникает в том, что квадратные скобки указывают на класс символов (или так я его прочитал), когда Perl пытается найти соответствие регулярному выражению, и в результате совпадение заканчивается неудачей. Я знаю, что могу избежать скобок с\[
или же\]
, но для этого потребуется еще один блок кода, чтобы пройти строку и найти скобки. Есть ли способ автоматически игнорировать скобки, не выходя из них по отдельности?
Краткое примечание: я не могу просто добавить обратную косую черту, так как это всего лишь пример. В моем реальном коде,$source
а также$pattern
оба приходят извне кода Perl (либо URIEncoded, либо из файла).