Я использовал это ниже выражение
s/^'|'$//
Просто я ожидаю нижеприведенного результата
'value' -> value (без одинарных кавычек)
'value'
value
но в моем выражении результат дается как value', он удаляет только первое вхождение.Как я могу это исправить?
value'
Как прокомментировали @ WiktorStribiżew и @lurker, без модификатора /g оператор s/// будет работать только в первом (слева направо) совпадении, которое ему соответствует.См. perlretut для получения дополнительной информации.
/g
s///
В качестве альтернативы может быть проще запустить его как два регулярных выражения (это обычно делается для реализаций trim):
trim
do { s/^'//; s/'$// } for $val;