ボタンを押した際に、
perlのサブルーチンを走らせてからsubmitする方法があったらお教えください。
結論から言うとできません。
perlで作成したフォームの動作は次のような手順になります。
サーバ
perlプログラムがフォームのHTMLを出力し、それをクライアントに返す
クライアント
サーバから受け取ったHTMLデータを表示する。
そのため、perlのプログラムはサーバサイドで動作しており、クライアントサイドには一切見えません。ボタンを押した際にどのような処理をしたいかによりますが、一般的な方法としては、
・JavaScriptを利用して、サブルーチンで行いたい処理をクライアントサイドで行う(フォームの入力チェックなど)
・サブミットされた後に、サブルーチンの処理を実行する。(サーバ内のデータが処理に必要な際)
のどちらかになるかと思います。
回答受付中でもコメントが付けられるとありがたいです。(この程度の回答にもポイントが必要なのは申し訳ない)
ブラウザからのデータ送信(Submit)が無いと何も始まりませんから、回答としては最初の方と同じく「出来ません」です。
ですが、やりたい事が(サーバサイドでの)メールの送信と、必要ページの表示なら、全然問題なく出来ると思います。
以下の手順でスクリプトを記述すればいいと思います。
そうなんですか。
> ・サブミットされた後に、サブルーチンの処理を実行する。
それでしたら、
submit → サブルーチン(具体的にはsendmail) → submitされた情報を元にページ変移
というのは可能なのでしょうか?