Вопрос довольно странный, но насколько я могу судить, вы спрашиваете, как управлять потоком вашего токового контура.Конечно, использование die
приведет к завершению работы вашей программы, поэтому, если вы этого не хотите, вам не следует использовать die
.Мне кажется элементарным, вот почему это странные вопросы.
Итак, я предполагаю, что у вас есть цикл, такой как:
for my $currentURI (@uris) {
my @tags = $c->posts_for(uri =>"$currentURI");
die "No candidate related articles\n" unless @tags;
# do stuff with @tags here....
}
И если @tags
пусто, вы хотитеперейти к следующему URI.Ну, это простая вещь, чтобы решить.Есть много способов.
next unless @tags;
for my $tag (@tags) { ... stuff ... }
if (@tags) { .... }
Далее идет самый простой.Он пропускает до конца блока цикла и начинается со следующей итерации.Однако использование блока for
или if
приводит к тому же поведению, и поэтому эквивалентны.Например:
for my $currentURI (@uris) {
my @tags = $c->posts_for(uri =>"$currentURI");
for my $tag (@tags) {
do_something($tag);
}
}
Или даже:
for my $currentURI (@uris) {
for my $tag ($c->posts_for(uri =>"$currentURI")) {
do_something($tag);
}
}
В этом последнем примере мы удалили @tags
все вместе, потому что это не нужно.Внутренний цикл будет выполняться ноль раз, если нет «тегов».
Это не очень сложная вещь, и если вы не уверены, я советую немного поиграться с циклами и условными выражениями, чтобы узнать, как они работают.