這個問題很奇怪,但就我所知,您正在詢問如何控制當前循環的流程。當然,使用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
一起,因爲它不需要。如果沒有「標籤」,內部循環將運行零次。
這不是真正複雜的東西,如果自己沒有把握,我建議你身邊有點玩循環和條件,瞭解它們是如何工作。
來源
2011-07-13 14:02:01
TLP
那麼......不要成爲一個聰明的人或任何事情,但如果你不想讓程序死掉,不要使用'死亡'?你不能同時死亡和死亡。 – TLP
@ TLP。好的一..事情是我想跳過錯誤並繼續前進,那正是我想要做的。 – sammed
也許只是將'死'改爲'警告'。 –