5

条件をチェックし、警告を出力し、1 行のコードでサブルーチンから戻りたいと考えています。これは機能します(そして、warnは1を返すと思います):

return warn "can't find file" if not -f $input_file;

これを安全に行うことができますか? それとももっと良い方法がありますか?

4

2 に答える 2

9

これは完全に安全ですが、返される値 (true) を判断するにはソースを調べる必要があり、返される値を制御する読み取り可能なオプションはありません。通常、この状況では Nothing/undef/false を返したいのですが、現在は true を返しているため、これはかなり重要です。

次のすべての代替方法で、返される値を指定できます。

warn("can't find file"), return if !-f $input_file;

(warn "can't find file"), return if !-f $input_file;

if (!-f $input_file) { warn "can't find file"; return }

-f $input_file or warn("can't find file"), return;

-f $input_file or (warn "can't find file"), return;
于 2012-11-21T00:38:23.330 に答える