1 名前:nobodyさん mailto:sage [2008/03/03(月) 05:07:32 ID:???] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 Perl使いが優しくコメントを返しますが、 お礼はPerlの布教と初心者の救済をお願いします。
319 名前:316貼り直し mailto:sage [2008/06/24(火) 06:17:21 ID:???] mod (#1) (※) CL なし 出来る CL #2 出来る CL #2 #8 出来ない CL #3 出来ない Cp なし 出来る(※) Cp #2 出来る Cp #2 #8 出来る Cp #3 出来る(※) AR2 なし 出来ない AR2 #2 出来る AR2 #2 #8 出来る AR2 #3 出来ない php なし 出来ない php #2 出来る php #2 #8 出来る php #3 出来ない 説明は>>317 の通り。 CL=CGI::Lite、Cp=CGI.pm、AR2=Apache2::Request、php=php(おまけ)。 #2 #8 は application/x-www-form-urlencoded; charset=UTF-8 のこと。 Apache2::Requestのつづり間違えてた。
320 名前:nobodyさん mailto:sage [2008/06/24(火) 10:11:34 ID:???] cgiが正常ならクライアント側の問題だろ? prototype.jsを遣わない理由がどこにある。
321 名前:nobodyさん mailto:sage [2008/06/24(火) 14:59:55 ID:???] RequestHeaderが違ってくるのは、XMLHttpRequestメソッドとブラウザの問題だと思うんだけど。 ttp://www.fraction.jp/log/archives/2005/03/216 prototype.jsは関係ないんじゃない?と思ったが XMLHttpRequestでgrepしてみると /* Force "Connection: close" for older Mozilla browsers to work * around a bug where XMLHttpRequest sends an incorrect * Content-length header. See Mozilla Bugzilla #246651. */ こんなのが。補正してるってことかな? RequestHeaderによっては受け取れない部分はCGI::Liteの問題。 知らないとハマるから、良い検証だったと思います。乙
322 名前:nobodyさん mailto:sage [2008/06/25(水) 05:30:05 ID:???] >>320 さん >>321 さん 318です。仰るとおり、送って来るReuestHeaderが異なるのは、各ブラウザ側の挙動の違いの問題です。 その後、教えて頂いたprototype.jsのXHR周りの動作について、手持ちのブラウザで基本的な動作確認をしましたが、 やはり送ってくるRequestHeaderはブラウザごとに違います。設定によりいくらかのヘッダの操作も出来ますが、 FireFox3で、当該の"chaesrt=..."の部分を消すことは出来ないようです。 ( これもブラウザにより異なります。IEでもデフォで、"charset="が付いてきたりします。 ここら辺の違いを吸収してくれるハズのライブラリで、ブラウザごとに分かち書きとかしないといけないのは、 本末転倒のような気がします。まあJavascriptのことはスレ違いになるんで、言及はここら辺でやめときます。)
323 名前:322 mailto:sage [2008/06/25(水) 05:30:57 ID:???] で、何が問題かと言うと、実は今自分の運営しているサイトで、CGI::Liteで書いた既存のcgiが動いてるんですが、 現在、日中平均で30req/s前後、ピーク時で90-100req/s程度のリクエストがあります。このスクリプトを導入した際に、 CGI.pmとCGI::Liteでそれぞれベンチを取ったのですが、本番環境と同一ハード,ソフトの環境で、 CGI.pmだと40rq/s位で限界、CGI::Liteだと150-160rq/s位までは持ちこたえられるとの結果を得ましたので、 CGI::Lite版を採用することに決めました。(その時は、最大50rq/s程度が想定でしたが・・・) で、今回これと同じ処理をするcgiに、Jsからajaxリクエストを投げるような構成を考えていたのですが、 そのテストの段で、上記の>>311 のような問題に行き当たったわけです。 現実問題として、速度や負荷の観点から、今回もCGI::Liteで行こうと思ったのですが、上記のような問題のため (prototype.jsを使う使わないに関係なく)CGI::Liteが使えないので困ったなぁ とゆう感じです。 ( 実は、mod_perl+Apache2::Requestでは、同様の処理で 1800rq/s! とかベンチ出たんですが、 実験的な環境のため、そのまま本番環境には投入できません。)
324 名前:nobodyさん mailto:sage [2008/06/25(水) 10:26:42 ID:???] >>323 当然考えているとは思うけど、CGI::Lite に手を入れてしまうのがリーズナブルなんじゃないかな。 parse_form_data() 内で、 $content_type eq 'application/x-www-form-urlencoded' と判断しているので、これを =~ にでもすればいいだけなわけだし。
325 名前:nobodyさん mailto:sage [2008/06/25(水) 13:14:34 ID:???] 簡単なパースしかしないなら、モジュール使わない方法もあるんじゃね?
326 名前:nobodyさん mailto:sage [2008/06/28(土) 19:23:20 ID:???] HTMLフォームから送信されてきた文字列の中からURLを探しだして <a href=>のタグをくっつけたいんですが、cgiのURLとかで?が入ってると上手く置き換えできません。 これを回避する方法を教えていただければ幸いです。 $mojiretu =~ s/$url/<a href="$url">$url<\/a>/; #$ulに?が入ってると置き換えできない。
327 名前:nobodyさん mailto:sage [2008/06/28(土) 19:59:00 ID:???] >>326 上手く行くかどうかしらんし、根本的な解決にはならんかも知れんが、 $mojiretu =~ s/\Q$url\E/<a href="$url">$url<\/a>/;
328 名前:nobodyさん mailto:sage [2008/06/28(土) 20:12:33 ID:???] >>327 うはwできた ありがとおお!!
329 名前:nobodyさん mailto:sage [2008/06/28(土) 22:15:55 ID:???] 「\E までのパターン指定メタ文字の意味を打ち消す」 ってどういう意味かな?
330 名前:nobodyさん mailto:sage [2008/06/28(土) 22:29:45 ID:???] $str="a?b"; のとき、 /$str/ が /a?b/ じゃなくて、 /a\?b/ に展開されるようにしてくれる。
331 名前:nobodyさん mailto:sage [2008/06/28(土) 22:33:22 ID:???] ?が「パターン指定メタ文字」なんだな、たぶん。 それで、?があると、そのあとに続く文字が 特別な意味をもつんだな。 だからそれをエスケープ?しなくてはならなくて、 そのための呪文という意味か。よくわかりました。
332 名前:nobodyさん mailto:sage [2008/06/28(土) 22:50:41 ID:???] >>331 >それで、?があると、そのあとに続く文字が >特別な意味をもつんだな。 違うよw ま、追い追い勉強しなw
333 名前:nobodyさん mailto:sage [2008/07/01(火) 21:46:30 ID:???] perl -MCPAN -e shellの後に、install Math::BaseCalcしたら、 make: *** [test_dynamic] エラー 255ってでるんだよ どうしたら、解決出きるのか教えてください
334 名前:nobodyさん mailto:sage [2008/07/01(火) 23:37:34 ID:???] >>333 config で make program を変更してみるとか、、、フォースインストール するとか、、、 俺の場合はMath::BaseCalcじゃないけど、makeでコケた奴はソースで手動で コンパイルして入れたりもする。
335 名前:nobodyさん mailto:sage [2008/07/01(火) 23:40:04 ID:???] >>333 まずはインストール時のメッセージをじっくり調べてみてはいかがでしょう。
336 名前:うっとりハムちゃん [2008/07/05(土) 00:33:32 ID:NR2upuAB] すいません、おじゃまします。 cgiにアクセスした際に、同時に○○.phpを読み込む際のPerl記述を教えていただけると助かります。 よろしくおねがいします。
337 名前:nobodyさん mailto:sage [2008/07/05(土) 09:04:26 ID:???] つ system つ ``
338 名前:うっとりハムちゃん [2008/07/05(土) 13:03:49 ID:NR2upuAB] レスありがとうございます! 例えば○○.php を読み込みたい(実行したい)場合、以下では無反応なのですが、間違っていますか? system ("○○.php");
339 名前:うっとりハムちゃん [2008/07/05(土) 13:38:38 ID:NR2upuAB] 説明不足で申し訳ないのですが、用途としては、 phpカウンターをcgi(掲示板)実行時にも カウントさせたいのです。 IMGタグでphpを読み込んでもいいのですが、 これだと携帯で見た時に壊れた画像マークになっちゃうので。。。 それで、cgiを実行時にphpファイルも同時実行できないかと思い、困っています。 よろしくお願いします。
340 名前:nobodyさん mailto:sage [2008/07/05(土) 14:13:13 ID:???] 携帯でそうなる理由を調べてそれを解消したほうが早い systemで実行するなら/usr/local/bin/php xxx.phpとかだろうけど それでキミの欲しいものが得られるのか? http経由で呼ぶならそうすればいい
341 名前:うっとりハムちゃん mailto:sage [2008/07/05(土) 15:00:49 ID:???] できました! とても助かりました!! どうもありがとうございました。 m(_ _)m
342 名前:nobodyさん mailto:sage [2008/07/05(土) 20:33:29 ID:???] >>341 おめでとう。 何をどう変えてどのような望む動作が得られたのかはさっぱりわからんが。
343 名前:nobodyさん mailto:sage [2008/07/05(土) 21:27:12 ID:???] おそらく直に読んでカウンターが上がったんじゃないかと
344 名前:うっとりハムちゃん [2008/07/05(土) 23:02:34 ID:NR2upuAB] たびたびすいません (><) system ("/usr/local/bin/php ○○.php"); ↑これで うまくできたのですが、他のレンタルサーバーでも使おうと思ってみたら、 そっちではphpを読み込んでくれず、ソースコードが丸ごと表示されちゃいました。 サーバーによって動作は異なるのでしょうか?
345 名前:うっとりハムちゃん [2008/07/06(日) 01:29:25 ID:+aL1pH4z] もしかして system の場合、何か終了(閉じる?)を記載しないといけないのでしょうか? 単純にphpカウンターを実行するだけでいいのですが。。。
346 名前:nobodyさん mailto:sage [2008/07/06(日) 02:26:42 ID:???] >>344 そりゃあんた、その違うレンサバとやらがphp対応なのかどうかと、 phpの実行パスが/usr/local/bin/phpとは限らんだろう。 サーバによっては、httpからはphp実行出来ても、ユーザー権限で直接実行出来ないように 設定されてる場合もあるし。
347 名前:うっとりハムちゃん [2008/07/06(日) 02:40:09 ID:+aL1pH4z] ありがとうございます。 サーバー会社に問い合わせたところ、 system ("/usr/local/bin/php ○○.php"); で動作しますと言われました。 パスに関してはあっているようです。