関数のエラー時の戻り値って何にしてます?
0や-1を返す場合が多いと思いますが、undefにしない理由って何かあるんでしょうか。
undefなら0と同じくfunc() or dieなんて呼び方もできるし、undefの可能性ありと
常に思っておけばprint func()なんて不用意に書かなくなるかなと思ったんですが。

use warningでundefをprintするなと大量に警告されて、関数の書き方間違ったかなと
思ったりしました。