Конкретно под этот пример бы подошло, но проблема в том, что заранее я не знаю значений. А если в качестве значения передадут текст:
=
, тогда первое же выражение нарушит его.
Я имею ввиду, что может быть такая конструкция:
my $text = q|`name`=\'value\', `name2` = \'value , \\ \' = value\'|;
my $text = q|`name`=\'value\', `name2` = \'value , \\ \' ,,, = ,,, `````value\'|;
my $text = q|`name`=\'value\', `name2` = \'value , \\ \' value\'|;
Как видите после символа "=" мы встречаем окрывающую и закрывающую одинарную кавычку. Так вот между этими кавычками может быть все что угодно, даже символ одинарной кавычки, но он должен быть экранирован. Нужно просто убрать все пробелы, кроме тех которые являются значениями, т.к. значением может быть текст, а текст должен оставаться неизменным.