私は最近、Tie::FileがPerlプログラムで使用できる最良の答えを証明するという問題を抱えていました。私はCGIを使用する準備ができた時点で、質問する必要があります。CGIで使用できないPerlモジュール、特にTie :: Fileはありますか?合併症がある場合、それらを調整する方法はありますか?
2 に答える
CGIは基本的に、STDINでリクエストを読み取り、STDOUTでヘッダーとHTMLを吐き出す単なるプログラムです。それは本当に特別なことではありません。十分に努力すれば、使用できないモジュールはありません。
十分な苦痛を伴うグラフィカル(GTKなど)のものを入手することもできます。あなたがしたいというわけではありません。あなたがサードパーティベンダーでない限り、私はそれをうまく機能させることに不満を持っていました。
ただし、プログラムの複数のコピーが同時に実行されている可能性があることに注意してください(同時Webリクエストごとに1つ)。したがって、フラットファイルを使用している場合は、ロックに対処する必要があります。
データ ファイルがCGI プロセスによって読み書き可能であることを確認してください。非常に奇妙なバグにつながったため、この回答を追加しています。CGI からは実行できないスクリプトがありました。実際、CGI はデータの内容を問題なく読み取ることができましたが、Tie::File は失敗しました (コマンド ラインから呼び出すと問題なく動作しましたが)。アクセス許可が -rw-rw-r-- に設定されていることが判明しました。これは、誰でも読み取り可能であることを意味しますが、自分のユーザーとグループだけが書き込み可能であることを意味します。CGI プロセスには書き込み権限がなかったので、Tie::File は CGI で失敗しました。