メソッドチェーンを使うとデバッグしづらくなるんでないか、という疑問に対するMojo的な反論。 my $instances = Mojo::Loader->new->load('Book')->build;という文があるとき、loadに失敗したらどうなるかを考えてみる。 よくあるメソッドのようにload('Book')がクラスないしオブジェクトを返す場合は、ロードにこけたら次のbuildを実行するオブジェクトがないといって怒られるのがふつうだ(or die $@などで判定しやすくなるよう、undef、あるいはその他の偽になる文字列などが返ってくることが多いため)。だから、evalでくるんだり、チェーンを切って逐一エラーチェックする必要がある。 Mojoのように基本的には自分を返し続けるチェーンなら、そうはならない。実際にMojo::Loaderのloadとbuildのソースを見てみよう。 s