1
有沒有人可以解釋爲什麼下一個腳本不起作用? Label not found for "last SOME_BLOCK"
錯誤的原因是什麼?爲什麼不能從Perl的信號處理程序中終止循環?
#!/usr/bin/perl
use v5.14;
SOME_BLOCK: {
alarm 1;
$SIG{ALRM} = sub {
last SOME_BLOCK;
};
my $count = 0;
while (1) {
$count += 1;
say $count;
}
};
扔'死'不僅是不受歡迎的,這是正常的事情。信號不會中斷「幾乎任何事情」。由於它們僅在Perl操作符之間進行檢查,因此不會在系統調用,庫調用或Perl操作中死掉。 – ikegami 2013-02-24 08:22:55
我同意,但它仍然不如檢查代碼中明確定義的點。 – rjh 2013-02-24 10:46:51