Неудачное сопоставление с несколькими образцами - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть переменная $ data, которая содержит кучу данных;Я хочу обработать, если любой из двух шаблонов, присутствующих в переменной, условие истинно, поэтому я пишу код, например

if ( $data =~ m/"Restore actions:"|"Setting Changes:"/)

, и помещаю оператор печати в условие else

, к сожалению, еговсегда обращаясь к остальному, даже если эти два шаблона присутствуют в переменной.

ниже приведены данные, содержащиеся в переменной $ data

sd: Save time:   Thu ...
sd: ...
sd: Restore actions:
sd: ...
sd: Setting Changes:
sd: ...

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Вы добавили кавычки, которые не отображаются в тексте, который вы пытаетесь найти.

if ( $data =~ /Restore actions:|Setting Changes:/ )

и точнее

if ( $data =~ /^sd: (?:Restore actions|Setting Changes):/m )

будет делать.

3 голосов
/ 28 ноября 2011

Попробуй так:

if ( $data =~ m/(Restore actions:|Setting Changes:)/)
...