もっと軽くて渋いCGI.pmを創ろう

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
お願いしまふ
2取り入れよ!:01/12/25 13:57 ID:???
欲しい所だけリッピングする
(・-・)すうろぅ (・-・)
3名無しさん@お腹いっぱい。:01/12/25 13:58 ID:qH/nvcoM
HNS とか TDS に付いてるやつじゃだめなの?
4上尾:01/12/25 14:03 ID:8JSVXMAC
>>3

>HNS とか TDS
の HNS ってなに?
5名無しさん@お腹いっぱい。:01/12/25 14:18 ID:qH/nvcoM
6名無しさん@お腹いっぱい。:01/12/25 14:32 ID:???
Rubyを使え

-------------------------終了--------------------------
7名無しさん@お腹いっぱい。:01/12/25 14:34 ID:???
もっと遅くなるだけだろ。
8名無しさん@お腹いっぱい。:01/12/25 14:35 ID:???
Cを使え

-------------------------終了--------------------------
9名無しさん@お腹いっぱい。:01/12/25 14:38 ID:???
CGI.pm の話してるのになんで Ruby が出てくるのか意味不明。
Ruby は Perl のモジュールでも読み込めるようになったのかね。
10出来るような...:01/12/25 14:39 ID:???
CGI.pm の話してるのになんで C が出てくるのか意味不明。
C は Perl のモジュールでも読み込めるようになったのかね。
11名無しさん@お腹いっぱい。:01/12/25 14:39 ID:???
>>9
そっとしてやんなよ。荒れてんだよ、クリスマスだから。
12名無しさん@お腹いっぱい。:01/12/25 14:39 ID:???
つくったらそれをどうするの?
まさか公開しないなんて言わないよね?
13名無しさん@お腹いっぱい。:01/12/25 14:40 ID:???
Perlを使え

-------------------------終了--------------------------
14名無しさん@お腹いっぱい。:01/12/25 14:46 ID:???
モジュールなんぞ使うな

-------------------------再開--------------------------
15名無しさん@お腹いっぱい。:01/12/25 14:51 ID:qH/nvcoM
>>14
実際問題として、query 切り出すだけだったらモジュール使う必要ないんだよね。
ヘッダ出力するのだって別にCGI.pm のお世話にならんでもいいだろうし。

CGI.pm だと、 mod_perl で動く可能性があるとか
それなりに色々メリットはあるんだけども。
16名無しさん@お腹いっぱい。:01/12/25 14:58 ID:rO3objig
CGI.pmになれると、正直、わざわざ
決まりきったルーチンを書くのが面倒。

実行速度よりも、おれがスクリプトを書く速度の方が大事(^^;
17名無しさん@お腹いっぱい。:01/12/25 15:04 ID:???
>>16

決まり切っているのならコピペでいいじゃない。
18名無しさん@お腹いっぱい。:01/12/25 15:28 ID:qH/nvcoM
とりあえずこんなかんじでいいのかな?

if( $ENV{'REQUEST_METHOD'} eq "POST" ){
read( STDIN, $argv, $ENV{'CONTENT_LENGTH'} );
@pairs =split( /&/, $argv );
}elsif( $ENV{'REQUEST_METHOD'} eq "GET" ){
@pairs =split( /&/, $ENV{'QUERY_STRING'} );
}else{
@pairs =@ARGV;
}

foreach( @pairs ){
( $key, $value ) =split( /=/ );

$key =~tr/+/ /;
$key =~s/%([a-fA-F0-9][a-fA-F0-9])/pack( "C", hex( $1 ) )/eg;

$value =~tr/+/ /;
$value =~s/%([a-fA-F0-9][a-fA-F0-9])/pack( "C", hex( $1 ) )/eg;

# $key =Jcode->new( $key )->h2z->euc;
# $value =Jcode->new( $value )->h2z->euc;

$param{$name}=$value;
}
19名無しさん@お腹いっぱい。:01/12/25 15:29 ID:qH/nvcoM
>>16
で、CGI.pm は遅いから、もうちょっと軽くて渋いのを作らんかねって話だよね。
20名無しさん@お腹いっぱい。:01/12/25 15:37 ID:Cl+vgUJI
>>18
大崎氏のPerlメモによると
$value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
のが速いらしい。
21名無しさん@お腹いっぱい。:01/12/25 15:56 ID:???
CGI_Lite.pmでいいじゃん、と。
22名無しさん@お腹いっぱい。 :01/12/25 16:29 ID:???
CGI.pmがフォームのデコードだけと思ってるのが面白い。(210KBも詰め込んでるのに・・・・)
答え2で出てるんじゃん、OO辞めて展開して自分で組み合わせれば?
分からなかったらplの方が若干簡単かも
23名無しさん@お腹いっぱい。:01/12/25 16:52 ID:qH/nvcoM
>>22
実際、フォームのデコードだけしかしないのに、
余計な部分が読みこまれるのがうっとおしいわけじゃない。

もっと中身がバラバラだったら必要なのだけ取り込めたのに。
ソースをリッピングすることなく。

use CGI::FormParser; とかさ。

なんで 210KB にもなるまで一個のファイルに詰め込んだのかしらん。
24名無しさん@お腹いっぱい。 :01/12/25 17:13 ID:???
まあ、一応あれで基本だけまとめてるんじゃ無いかな? cookieとかは別だし
実際、そこまで気になるなら、普通のBBS何かで使うならcgi-lib分解して適当に使った方が
ずっと軽くて良いんじゃない?
そんな使い方しかしてないのも良く有るし。。。
これは激しく出力内容が変わったり、仕様変更が頻繁になった時に強度が有る
って代物だから、書ききりだったらサブルーチンで十分と思う。
25名無しさん@お腹いっぱい。:01/12/25 17:33 ID:???
CGI.pm VERSION 3 は新規一転書き直しで早いらしいぞ。
ロードは確かに早い。

とはいえQUERY抽出だけを切り離したCGI::Queryは欲しいな。
誰か作るならPHASHベースきぼんぬ。
26名無しさん@お腹いっぱい。:01/12/25 17:39 ID:qH/nvcoM
>>25
PHASH ってなんですか?
27名無しさん@お腹いっぱい。:01/12/25 17:45 ID:???
Pointer to hash
つか
Reference to hash?
かなりてきとー
28名無しさん@お腹いっぱい。:01/12/25 18:00 ID:???
pseudo hash だろ
29名無しさん@お腹いっぱい。:01/12/25 18:14 ID:qH/nvcoM
>>28
http://www.melma.com/mag/85/m00014785/a00000004.html
で発見しました。
なるほどー。

$foo = [{foo=>1, bar=>2}, 'FOO','BAR'];

print $foo->[1]; # FOO
print $foo->{foo}; # FOO
print $foo->[2]; # BAR
print $foo->{bar}; # BAR

こんなのがあったなんてしらなかった....
30名無しさん@お腹いっぱい。:01/12/25 20:09 ID:rO3objig
ちょいまち。pseudo hashは無くなる方向じゃなかったか?
31名無しさん@お腹いっぱい。:01/12/25 20:10 ID:???
うるせえ死ね。
お前等ゴミ屑は一体何の為に生きてるんだよ。
誰からも必要とされてないくせに偉そうな顔して
街を歩くなデブヲタの分際で。いい加減にしてくたばれよ。
32名無しさん@お腹いっぱい。:01/12/25 20:12 ID:???
こんなこと言っても貴様等チンカスには全く理解できないのだろうがな。
君達みたいなチンカスがこの地球上に存在してると思うだけでも反吐が出るんだよ。
早く死んでほしいんだよな。この文章を読んでいるゴミ屑ども、すぐに首を吊りなさい。お死になさい。生きてる価値無いんだから。
33名無しさん@お腹いっぱい。:01/12/25 20:13 ID:???
>>31は自分で自分の外出禁止令を出して何が楽しいのでしょうか?
34名無しさん@お腹いっぱい。:01/12/25 20:14 ID:???
と、こんな厨房もたまに乱入しますが
気にせず行きましょう。
35名無しさん@お腹いっぱい。:01/12/25 23:26 ID:???
>>30
Perl6で無くなるんだっけ?
でも利点が多いんで使いたいのだ。

・ただのハッシュよりはコンパクト
・条件付で高速なアクセス
・フィールド継承のサポート
36名無しさん@お腹いっぱい。:01/12/26 00:31 ID:RrkKaZX3
こんなのどう。

sub get_full_query {
my $self = shift;

my $str = "";
$ENV{CONTENT_LENGTH} and read(STDIN, $str, $ENV{CONTENT_LENGTH});
$ENV{QUERY_STRING} and $str .= $ENV{QUERY_STRING};

my $query;
for (split /&/, $str) {
my ($name, $value) = map $self->url_decode($_), split /=/, $_;
push @{$$query{$name}}, $value;
}
$self->{_query} = $query;
}

sub url_decode {
my $self = shift;
my $part = shift;
$part =~ tr/+/ /;
$part =~ s/%([0-9A-Fa-f]{2})/pack("c", hex($1))/ges;
$part;
}
37名無しさん@お腹いっぱい。:01/12/26 00:53 ID:???
だれかXSで作ってくれねーかな。
38名無しさん@お腹いっぱい。:01/12/26 08:58 ID:???
CGI_Lite.pmはガイシュツだけど、
CGI::Minimalとかどうよ?
漏れは使ったこと無いが。
39名無しさん@お腹いっぱい。:01/12/26 13:16 ID:0snM5bma
>>38
使える機能
・フォームのデコード
・アップロードの処理
・url エンコード・デコード
・< とか > とか & のエスケープ、
・RFC1123形式の時間表示

シンプルでよさげ。
クッキー周りを自分で書くなら、これいいかも。
40名無しさん@お腹いっぱい。:01/12/27 02:14 ID:???
こう言うのってマルチパートの時オブジェクト返すのばっかりかな
CGI->fileprint("FormName");
みたいに出来ないと精神的にかなり嫌だ
41ダメ男:01/12/29 04:16 ID:3B5IEZRj
$value=~ s/%(..)/chr(hex($1))/eg;
これのほうが速くない?
42a:02/08/13 10:12 ID:???
print $query->checkbox(-name=>'checkbox_name',
-checked=>'checked', # この行
-value=>'on',
-label=>'Turn me on');

とやると

<input type="checkbox" name="checkbox_name" value="on" checked>
みたいになるけど デフォルトでcheckedさせないようにするにはどうすればいいのかな?

#つまりは

-checked=>'checked',

#この行があってもなくてもデフォルトでcheckedになってしまうのでそれを何
#とかしたい
43nobodyさん:02/08/13 10:37 ID:???
何故にこのスレを選んだかなぁ。。。
44nobodyさん:02/08/13 13:19 ID:???
Apache::Request使うからいいよべつに。
45山崎渉:03/01/15 13:51 ID:???
(^^)
46山崎渉:03/03/13 17:48 ID:???
(^^)
47nobodyさん:03/03/21 18:05 ID:pOguTMzc
cgi-lib.plではダメなのか?
48nobodyさん:03/03/21 22:32 ID:???
49nobodyさん:03/03/21 23:40 ID:???
>>48
ひどすぎるそれ。
2次配布禁止ってなってるけど、それで正解だ。
むご過ぎて、2次配布する価値無しだ。
50nobodyさん:03/03/21 23:48 ID:???
decode.plなんて汎用的な名前をつけるなよ・・
51nobodyさん:03/03/21 23:48 ID:???
>>48
strictなコードで書いてほしい・・・
cgi-lib.plと同じじゃないかそれじゃ

といっても最近はCGI.pm使うようになっちゃったからなぁ
無用だね
52nobodyさん:03/03/21 23:56 ID:???
http://www.vector.co.jp/soft/unix/net/se273675.html
Cookieの送受信に便利なPerlライブラリ
泣けるなぁ・・
53nobodyさん:03/03/22 10:52 ID:WPdkGWdU
勝手にメインパッケージの変数書き換えるなよ…
54nobodyさん:03/03/22 13:59 ID:35k142Il
説明のほうが長いという罠
55nobodyさん:03/03/22 16:35 ID:???
モジュールの作り方を説明しているページってありませんか?
56nobodyさん:03/03/22 18:57 ID:???
57山崎渉:03/04/17 12:12 ID:???
(^^)
58山崎渉:03/04/20 06:21 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
59山崎渉:03/05/22 02:21 ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
60山崎渉:03/05/28 17:09 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
61山崎 渉:03/07/15 11:25 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
62山崎 渉:03/08/02 02:28 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
63ぼるじょあ ◆ySd1dMH5Gk :03/08/02 05:01 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
64山崎 渉:03/08/15 23:28 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
65名無し募集中。。。:04/06/13 20:24 ID:???



         . ||
         . ||
.    ☆ノハヽθ ______
    ||ノノ*^ー^) アーテステス (:::) ./|
    || / つと  ||||.    ./ . |
    |二 / [] .  ̄ .  /  /
      | ̄ ̄ ̄ ̄ ̄ ̄| . /
      |______|/

66名無し募集中。。。:04/06/13 20:25 ID:???


. Y ̄ ̄⌒⌒⌒⌒ ̄ ̄~`ヽ
  \\※※※※※※※  \
 .  .\\※※※※※※※  \
     \\※※ 〆〃ハハ 〜♪
         \ヽ γ∬∬´▽`)※ . \
  .      ヽ(~~~~~~∪~~∪~~~~~~~~)
           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ____
. /  / | |        \ アーテステス… /
 |二二|  | |                  ww
. \  \ | |           ____./
| ̄ ̄ ̄ ̄ ̄ ̄|          |囲 = 囲|
                     ̄ ̄ ̄ ̄

67名無し募集中。。。:04/06/13 20:25 ID:???


.  ☆ノハヽ ヨシ!!
.  ノノ*^ー^)    ||| |◎▼
   / つと    ( 99 ::)
  ⊂_)__)    (  [] )))
.            ̄ ̄ ̄

68名無し募集中。。。:04/06/13 20:26 ID:???



   ||◎▼☆ノハヽ シュッパーツ!!
  ( 99 ノノ*^ー^)o
  (  [] )))  /
.  . ̄ ̄ ̄ u─u

69名無し募集中。。。:04/06/13 20:26 ID:???

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,___,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;__, . | □ |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;□| | |___| □ |__|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;| |[]|  || □ |   |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/  \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/      \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/         \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/  .          \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;/     |||◎◎/      \;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;/  .    (======) トオイ…  . \;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;/        (___)]  .      \;;;;;;;;;;;;;;;
;;;;;;;;/           u─u            \;;;;;;;;

70名無し募集中。。。:04/06/13 20:32 ID:???

   ||◎▼☆ノハヽ ハイ、ミカンデス  .  .  ノノハヽ ナンデウチシッテンノ…
  ( 99 ノノ*^ー^)             (VvV;从_
  (  [] ))),  つ(::::)       ~~~-⊂  ,-、)/
.  . ̄ ̄ ̄ u─u     .         (つ し' /

71名無し募集中。。。:04/06/13 20:32 ID:???


          |     .     |        |  |
       ──|── .  | / ̄| ̄\     |  |
          |      |/   .|   |  .  .|  |
       \         . __|__/..  . ...|  |
\   .    \          /  .  .   〇 〇.  /
  \         .  .                  /
    \              キイテル?ヤッホー!!   ./
      \             エリノホウガカワry ./
                   ww    .  .      oノハヽo ビックリシタノ…
.                 山             Σ(・ 。.・*;从
              | ̄|| ̄ ̄|| ̄|           /  つつ
              |◎||■--||◎|           ヽ_)_)´
.               ̄ . ̄ ̄ . ̄

72名無し募集中。。。:04/06/13 20:33 ID:???



.              ドッカ〜ン!!
.   .           γ''⌒⌒⌒ヽ
              (⌒;;;;⌒ ;;;;; ⌒)
.             (  (⌒;;;;;   );;;;;)             oノハヽo
             (;;;;(      ;;;;; ) )            (・ 。.・+从
             (   (;;;;;;;   ;;;;; ) ;;;;;.) .           /. 0T0 ガシャ!!
.             `ゞ 、,,;; ;;;;; ;;;,,ノ''"             u─| ̄|

73名無し募集中。。。:04/06/13 20:33 ID:???


.      | . ;;;;;;;;;;;| .         .   .     .|     ;;;;|
.      |  ;;;;;;;;;;| .  . ハロプロショップ   .  |     ;;;;|
.      | . ;;;;;;;;;;;|.   .           .   . |     ;;;;|
.      |  ;;;;;;;;;;|   ________     |   き ;;;;;|
.      | . ;;;;;;;;;;;|   || .    |     .||    .| みて ;;;;;|
.      |  ;;;;;;;;;;|   || .    |     .||    .|. た  /|
.      |   ;/|   ||    0|0ノハヽ☆ .  . |. で /;;;;|
.      | . / ;;;;|   ||  ノノノヘ(^ー^*从||.    |. /  ...└─
_____|/.   |.._.._||_(゜皿 ゜ 川  )_||____|/
                  (    つ
                   ヽ/ /
. .                  (___/J

74nobodyさん:04/06/21 23:15 ID:???
s
75電脳プリオン:04/07/19 17:58 ID:???
もうもっと軽くて渋いCGI.pmを創れましたか?
76nobodyさん:04/07/27 20:09 ID:???
           ,.. -─ ´ ̄ ̄ ̄ ̄` ─- 、_
         /                i
           /   , .              |
          |  JVし     __,,..-一、    |   __
         L__     _,,...ニァT ||::::::::::::|    / ,.‐'´/
         | |_>ー<___/ |. lj:::::::::∠-一´/  /
         `/___,..-ニ',7 T´,.-‐'´  /  _,./..,すぐにあの世に送ってやるぜ
          '┬─'´ // _/:ヽ‐ニー--‐シ' ̄   \
           |l___///:::::::::::::::/i.   |l        |
           ``ニ- ´i':::::::::::::::::/     |l.       |
77nobodyさん:04/07/29 01:53 ID:???
a
78 :2006/02/20(月) 21:19:56 ID:???
CGI::Minimalよさげ

http://www.nihongo.org/snowhare/utilities/modules/cgi-minimal/

CGI.pm (3.05) via standard CGI - 16 fetches per second
CGI::Simple (0.075) via standard CGI - 20 fetches per second
CGI::Deurl (1.08) via standard CGI - 36 fetches per second
CGI::Thin (0.52) via standard CGI - 38 fetches per second
CGI::Lite (2.02) via standard CGI - 52 fetches per second
CGI::Minimal (1.16, :preload) via standard CGI - 52 fetches per second
CGI::Minimal (1.16) via standard CGI - 66 fetches per second
cgi-lib.pl (2.18) via standard CGI - 71 fetches per second
null Perl script via standard CGI - 103 fetches per second
null C program via standard CGI - 174 fetches per second
CGI::Simple (0.075) via mod_perl - 381 fetches per second
CGI.pm (3.05) via mod_perl - 386 fetches per second
CGI::Minimal (1.16) via mod_perl - 417 fetches per second
null Perl script via mod_perl - 500 fetches per second
79nobodyさん:2006/02/20(月) 21:24:49 ID:???
やっぱりそういうレスが来ると思ったよ。
都合悪くなるとすぐ CGI::Minimal なんだからw
ここに声高らかに宣言する。

釣れた

と(´゚c_,゚` )
8078:2006/02/21(火) 02:00:38 ID:eNvBOK6K
都合悪くって何の都合?
悪いがちょっと意味わからんので説明してくれ・・・
何につられたのかもようわからんw
81はろー:2011/05/18(水) 10:24:10.16 ID:???
こんどこそ
82nobodyさん:2011/05/18(水) 10:24:53.17 ID:???
もういっかい
83 忍法帖【Lv=40,xxxPT】(1+0:8) 【24m】 電脳プリオン ◆3YKmpu7JR7Ic

  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>58
            / ←>>62