Лучший подход будет зависеть от того, сколько вы знаете о данных, которые вы пытаетесь сопоставить.Если вы знаете, что он будет состоять только из цифр и тире:
m/11=([0-9\-]+)/
И наоборот, если данные могут содержать символы любого типа, используйте:
m/11=([^|]+)/
Что соответствует любому, что не символ трубы.Это, вероятно, самое надежное выражение.
В обоих случаях нужные данные записываются в специальную переменную $1
.
Если вы не всегда хотите совпадать со значением дляклавиша 11, вы можете использовать переменные в шаблоне, так:
my $key = 42; # or any number
if ($text =~ m/$key=([^|]+)/) {
print "I found $1"; # prints "I found 20110201-05529"
}