Я пытаюсь выполнить простую проверку, чтобы увидеть, содержит ли строка «%», но всякий раз, когда я выполняю свой код, он оценивает оператор if как ложный независимо от того, что находится в строке.Мой код выглядит следующим образом:
if ($end_time =~ m{%%}) {
($percentage) = $end_time =~ m/=([^%%]*)%%/g;
$percentage = sprintf("%s%%", $percentage);
$end_time = "";
}
elsif ($duration =~ m/(overdue)/) {
$percentage = "$end_time $duration";
$end_time = "";
}
else {
$percentage = "100%";
}
и ожидаемые значения $ end_time, замените любые числовые значения, которые вам нравятся.
"5%" or "==30%" or "+3m:26s overdue" or "13:48:40"
Так что, если $ end_time содержит "просрочено" или "% "процент будет равен 100%, а $ end_time будет тем, что было там до проверки.И я понимаю, почему я получаю результаты, которые я получаю, но не причина, по которой мои операторы if всегда оцениваются как ложные.