Вместо того, чтобы беспокоиться о деталях содержимого, просто сопоставьте что-либо в скобках.
my($type, $value) = m{< (\w+) \s+ (.*?) \s* >}x;
.*?
означает совпадение с чем-либо не жадным , что означает, что оно будет искать первое сопоставляемое, а не самое длинное Это означает, что он не будет убирать пробелы в конце, он оставит его на \s*
. Это также означает, что <foo bar> and then a >
.
не будет обманут