Невозможно получить данные из тайника с ключом, который содержит одну кавычку - PullRequest
0 голосов
/ 17 июня 2019

База данных содержит названия компаний, которые заключены в одинарные кавычки.Когда пользователь выбирает компанию, мне нужно извлечь из хеша ключ = CompanyName.У меня проблема не в том, что я не могу получить содержимое из Stash.

В режиме отладки я проверил следующее, умея использовать одинарные и двойные кавычки вокруг названия компании:

  DB<12> x $c->stash->{'company_list'}->{'corp_summary'}->{'Waldo\\\'s Merchandising Services, LLC'}
0  'c635|i1193|i1194|i1220|i1221|'
  DB<13> x $c->stash->{'company_list'}->{'corp_summary'}->{"Waldo\\\'s Merchandising Services, LLC"}
0  'c635|i1193|i1194|i1220|i1221|'

Код распечатывает имя, которое я ищу, и замену, которую я сделал, но последняя строка кода "$ codes" остается пустой.

306       print "$cc\n";
307       print "$cc\n";
308       print "$cc\n";
309       print "$cc\n";
310       my $temp = $cc;
311       $temp =~ s/'/\/\/\/\'/g;
312       
313       print "$temp\n";
314       print "$temp\n";
315       print "$temp\n";
316       print "$temp\n";
317       print "$temp\n";
318       my $codes = $c->stash->{'company_list'}->{'corp_summary'}->{"$temp"};

Вывод из операторов печати:

Waldo's Merchandising Services, LLC
Waldo's Merchandising Services, LLC
Waldo's Merchandising Services, LLC
Waldo's Merchandising Services, LLC
Waldo///'s Merchandising Services, LLC
Waldo///'s Merchandising Services, LLC
Waldo///'s Merchandising Services, LLC
Waldo///'s Merchandising Services, LLC
Waldo///'s Merchandising Services, LLC

Мой ожидаемый вывод - иметь $ коды, содержащие "c635 | i1193 | i1194 | i1220 | i1221 |"

1 Ответ

3 голосов
/ 17 июня 2019

Вы используете косую черту вместо обратной, и у вас есть еще две косые черты, чем необходимо в $temp. Попробуйте:

$temp =~ s{'}{\\'}g;
...