Как избежать знака доллара ($) в строке, используя регулярное выражение perl

Я пытаюсь экранировать несколько специальных символов в заданной строке с помощью регулярного выражения perl. Он отлично работает для всех символов, кроме знака доллара. Я попробовал следующее:

my %special_characters;
$special_characters{"_"} = "\\_";
$special_characters{"$"} = "\\$";
$special_characters{"{"} = "\\{";
$special_characters{"}"} = "\\}";
$special_characters{"#"} = "\\#";
$special_characters{"%"} = "\\%";
$special_characters{"&"} = "\\&";

my $string = '$foobar';
foreach my $char (keys %special_characters) {
  $string =~ s/$char/$special_characters{$char}/g;
}
print $string;

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

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