Причина, по которой ваша не работает, заключается в том, что вы пытаетесь ограничить первый кавычек появлением в начале строки или сразу после новой строки в любом месте там и последний кавычек встречаются либо в конце строки, либо непосредственно перед новой строкой в любом месте.
Это не то, что ваши данные содержат. Не делай этого сложнее, чем нужно.
Если вы хотите, все между первой двойной кавычки, а последний, в том числе других, то вы хотите
($content) = $string =~ /"(.*)"/sx;
Если вы хотите их много, и никакие двойные кавычки внутри, вы хотите:
(@contents) = $string =~ /"([^"]*)"/gx;
($ содержание) = $ строки = ~ /"(.*) "/ sx работает для меня, но в чем разница с $ content = $ string = ~ /"(.*)"/ sx, который не работает? @tchrist – bootware
, ограничивающий возможность начала и конца строки - это то, что я хотел. @tchrist – bootware