Экранирование специальных символов в регулярных выражениях Perl

Я пытаюсь сопоставить регулярное выражение в Perl. Мой код выглядит следующим образом:

my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/$pattern/) {
  print "Match found!"
}

Проблема возникает в том, что квадратные скобки указывают на класс символов (или так я его прочитал), когда Perl пытается найти соответствие регулярному выражению, и в результате совпадение заканчивается неудачей. Я знаю, что могу избежать скобок с\[ или же\], но для этого потребуется еще один блок кода, чтобы пройти строку и найти скобки. Есть ли способ автоматически игнорировать скобки, не выходя из них по отдельности?

Краткое примечание: я не могу просто добавить обратную косую черту, так как это всего лишь пример. В моем реальном коде,$source а также$pattern оба приходят извне кода Perl (либо URIEncoded, либо из файла).

Ответы на вопрос(5)

Ваш ответ на вопрос