そこで、単純なhtml 1.0サーバーを作成し、サーバー上にいくつかのperlスクリプトがあります。特に、ヒストグラムと呼ばれるこのスクリプトがあります。これは、別のcgiファイルと同等のフォームアクションを持つhtmlフォームです。コードは次のとおりです。
print "<form action=\"tallyandprint.cgi\" method=\"GET\">";
これで、tallyandprint.cgiを呼び出すと、gnuplotを使用してグラフがプロットされ、ユーザーのブラウザーに送信されます(STDOUTはhtmlサーバーコードでリダイレクトされるため、perlが継承します)。ここで、bashからtallyandprint.cgiを実行できるようにしたいのですが、別のスタイルの引数を取ります。現在、私はperl解析を使用して、URLを解析し、内容を+記号で区切ってパターンを取得しています(例:?pattern = 1 + 2 + 3 + 4はURLです)。
それは問題なくダンディですが、私の引数を1 + 2 + 3 + 4としてbashで記述したくはなく、別の方法で分離したいと思います。perlのバージョンのisatty()を使用しようとしましたが、入力は常にターミナルからのものであるため(サーバーが実行するため)、この方法で入力がbashからのものかWebブラウザーからのものかを区別できません。
私の次は、STDOUTがリダイレクトされているかどうかを確認することでした。Webサーバーがcgiを実行している場合、STDOUTはユーザーが接続しているソケットにリダイレクトされるためです。bashで実行する場合、STDOUTは通常のttyである必要があります。これをperlで確認するにはどうすればよいですか?