結論から言うと、ルーティングオブジェクトはMojolicious::Controllerを承継しているため、そのメソッドはactionに指定できないのでsendやfinishは使えないってことのようです。解説まず、通常よくあるディスパッチャ(ルーティングしてる部分)を見てみましょう。完了画面?この例では、お問合せフォームのそれぞれのアクションが実行され、それぞれの画面が表示されるはずです。action=>'index')と同じ意味になります。半角シャープ(#)区切りでコントローラーとその中のアクション(実態はpmファイルとその中の関数です)を指します。ところが、実際に上記のルーティングで実行させ、/contact/send/にアクセスすると、Mojoliciousのエラー画面が表示されてしまいます。いうエラーメッセージなんですが、見当はずれなので無視です。それよりデバッグログの方をよく見ると、こんなログが残っています。allowed."send"アクションは許可されていませんっていうエラーです。sendはアクションに許可されないんです。なんで?アクション先で指定したオブジェクト(pmファイル)もMojolicious::Controllerを承継しているので、Mojolicious::Controllerのメソッド一覧に既にあるsendメソッドと衝突してしまったのです。同じ理由でfinishも使えませんです。メソッド一覧を見てると、他にも結構ぶつかりそうな名称のメソッドがありますね・・。あるフォーム遷移のアクション名付けということで、以下、私がよく使うエラーにならないアクションの名づけ方です。