5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名無しさん@お腹いっぱい。:01/12/25 13:52 ID:KBD2Ypc8
お願いしまふ

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
>>4
HNS
http://www.h14m.org/

TDS
http://tds.dive-in.to/

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;
これのほうが速くない?

42 :a: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になってしまうのでそれを何
#とかしたい


43 :nobodyさん:02/08/13 10:37 ID:???
何故にこのスレを選んだかなぁ。。。

44 :nobodyさん:02/08/13 13:19 ID:???
Apache::Request使うからいいよべつに。

45 :山崎渉:03/01/15 13:51 ID:???
(^^)

10 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)