как заменить специальный символ на escape-символ - PullRequest
0 голосов
/ 01 февраля 2011
my $c=  'ODD_`!"£$%^&*(){}][@@;:/?.>,<|\'

Я хочу заменить их всех на специальные символы

как добиться этого быстрее ...

my $c=  'ODD_\`\!\"\£\$\%\^\&\*\(\)\{\}\]\[\@\,\;\:\/\?\.\>\,\<\|\\'

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011

Использование quotemeta:

#!/usr/bin/env perl

use warnings; use strict;

my $c = 'ODD_`!"£$%^&*(){}][@@;:/?.>,<|\\';

print quotemeta($c), "\n";

Обратите внимание, что ваше определение $c не будет скомпилировано, поскольку вы должны экранировать \ даже в одиночных кавычках.

0 голосов
/ 01 февраля 2011

Хотя я думаю, что ответ Синан верен для того, что, как я полагаю, вам нужно (на основе вашего списка символов для выхода), для полноты я добавлю модуль URI::Escape, который экранирует метасимволы в HTML текст. Кажется, что у него есть возможность указать небезопасные символы, поэтому, возможно, он тоже может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...