У меня есть код perl ниже. Я пытаюсь установить flag
на 1
, если у моего $location
есть строка /foo/HELLO
, которая работает нормально. Но теперь я хочу, чтобы установить flag
в 0
если $location
имеет /foo/*
(он имеет /foo/
и что-нибудь после того, как кроме ПРИВЕТ)perl regex, чтобы соответствовать строке, начиная с шаблона
Как я могу сформулировать мое регулярное выражение в else
состоянии достичь его?
use strict;
use warnings;
my $flag =0;
my @locations= (
"/path/with/foo/HELLO",
"/path/with/foo/def-abc-addons.install",
"/path/with/foo/def-abc-addons.lintian-overrides",
"/path/with/foo/def-abc-addons.postrm",
"/abc/def/ggfg",
"/frgrg/hjytj/dgth",
);
foreach my $location(@locations){
if ($location =~ m/\/foo\/HELLO/) {
print 'match';
$flag=1;
} else {
print 'no match';
$flag=0
}
}
Конечно, 'else' состояние делает это? – Sobrique
Я попытался изменить ваш вопрос, но я не уверен, что понимаю вас. Вы говорите * «Я пытаюсь установить флаг' '' '', если в моем '$ location' есть строка' \ foo \ HELLO' * *, и вы говорите, что он работает. Однако в этом случае ваш код устанавливает '$ flag' в 1. Затем вы продолжаете говорить * «Я хочу установить' флаг' в '0', если' $ location' имеет '\ foo \ *' "* - вы имеете в виду'/foo/* '? – Borodin
@Borodin: Обновлен вопрос. Извините за путаницу, вызванную – Jill448