エラーチェックを管理するPerlルーチンがあります。前の成功に基づいて、約10の異なるチェックがあり、いくつかはネストされています。これらは通常、私がcroak
/die
にする必要がある例外的なケースではありません。また、エラーが発生すると、残りのチェックを実行する必要はありません。Perlでエラーチェックをきれいに処理できますか?
しかし、私は次の恐ろしいハックに類似したものを使用する場合を除き、この問題を解決するためにきちんとした方法を考えるように見えることはできません。
sub lots_of_checks
{
if(failcond)
{
goto failstate:
}
elsif(failcond2)
{
goto failstate;
}
#This continues on and on until...
return 1; #O happy day!
failstate:
return 0; #Dead...
}
私が行うことができることを好むだろう何だろうそのような何か:
do
{
if(failcond)
{
last;
}
#...
};
goto failstateを使用するのではなく、すぐに戻るのはなぜですか?見た目はきれいではありませんが、においは少なくなります。 – lexu
私は「シングルエントリー、シングルエグジット」を保持することを望みます。それは可能ではないかもしれません...私は代替案を模索しようとしています。 –
Perlコミュニティでは、一般的にループ/サブ/ etcから抜け出すのがより良いフォームと考えられています。早い。ブロックの残りの部分が指定された条件に適用されないことが明確になります。 –