もっと軽くて渋いCGI.pmを創ろう
欲しい所だけリッピングする (・-・)すうろぅ (・-・) HNS とか TDS に付いてるやつじゃだめなの? >>3 >HNS とか TDS の HNS ってなに? Rubyを使え -------------------------終了-------------------------- Cを使え -------------------------終了-------------------------- CGI.pm の話してるのになんで Ruby が出てくるのか意味不明。 Ruby は Perl のモジュールでも読み込めるようになったのかね。 CGI.pm の話してるのになんで C が出てくるのか意味不明。 C は Perl のモジュールでも読み込めるようになったのかね。 >>9 そっとしてやんなよ。荒れてんだよ、クリスマスだから。 つくったらそれをどうするの? まさか公開しないなんて言わないよね? Perlを使え -------------------------終了-------------------------- モジュールなんぞ使うな -------------------------再開-------------------------- >>14 実際問題として、query 切り出すだけだったらモジュール使う必要ないんだよね。 ヘッダ出力するのだって別にCGI.pm のお世話にならんでもいいだろうし。 CGI.pm だと、 mod_perl で動く可能性があるとか それなりに色々メリットはあるんだけども。 CGI.pmになれると、正直、わざわざ 決まりきったルーチンを書くのが面倒。 実行速度よりも、おれがスクリプトを書く速度の方が大事(^^; >>16 決まり切っているのならコピペでいいじゃない。 とりあえずこんなかんじでいいのかな? 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; } >>16 で、CGI.pm は遅いから、もうちょっと軽くて渋いのを作らんかねって話だよね。 >>18 大崎氏のPerlメモによると $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg; のが速いらしい。 CGI.pmがフォームのデコードだけと思ってるのが面白い。(210KBも詰め込んでるのに・・・・) 答え2で出てるんじゃん、OO辞めて展開して自分で組み合わせれば? 分からなかったらplの方が若干簡単かも >>22 実際、フォームのデコードだけしかしないのに、 余計な部分が読みこまれるのがうっとおしいわけじゃない。 もっと中身がバラバラだったら必要なのだけ取り込めたのに。 ソースをリッピングすることなく。 use CGI::FormParser; とかさ。 なんで 210KB にもなるまで一個のファイルに詰め込んだのかしらん。 まあ、一応あれで基本だけまとめてるんじゃ無いかな? cookieとかは別だし 実際、そこまで気になるなら、普通のBBS何かで使うならcgi-lib分解して適当に使った方が ずっと軽くて良いんじゃない? そんな使い方しかしてないのも良く有るし。。。 これは激しく出力内容が変わったり、仕様変更が頻繁になった時に強度が有る って代物だから、書ききりだったらサブルーチンで十分と思う。 CGI.pm VERSION 3 は新規一転書き直しで早いらしいぞ。 ロードは確かに早い。 とはいえQUERY抽出だけを切り離したCGI::Queryは欲しいな。 誰か作るならPHASHベースきぼんぬ。 Pointer to hash つか Reference to hash? かなりてきとー >>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 こんなのがあったなんてしらなかった.... ちょいまち。pseudo hashは無くなる方向じゃなかったか? うるせえ死ね。 お前等ゴミ屑は一体何の為に生きてるんだよ。 誰からも必要とされてないくせに偉そうな顔して 街を歩くなデブヲタの分際で。いい加減にしてくたばれよ。 こんなこと言っても貴様等チンカスには全く理解できないのだろうがな。 君達みたいなチンカスがこの地球上に存在してると思うだけでも反吐が出るんだよ。 早く死んでほしいんだよな。この文章を読んでいるゴミ屑ども、すぐに首を吊りなさい。お死になさい。生きてる価値無いんだから。 >>31 は自分で自分の外出禁止令を出して何が楽しいのでしょうか? と、こんな厨房もたまに乱入しますが 気にせず行きましょう。 >>30 Perl6で無くなるんだっけ? でも利点が多いんで使いたいのだ。 ・ただのハッシュよりはコンパクト ・条件付で高速なアクセス ・フィールド継承のサポート こんなのどう。 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; } CGI_Lite.pmはガイシュツだけど、 CGI::Minimalとかどうよ? 漏れは使ったこと無いが。 >>38 使える機能 ・フォームのデコード ・アップロードの処理 ・url エンコード・デコード ・< とか > とか & のエスケープ、 ・RFC1123形式の時間表示 シンプルでよさげ。 クッキー周りを自分で書くなら、これいいかも。 こう言うのってマルチパートの時オブジェクト返すのばっかりかな CGI->fileprint("FormName"); みたいに出来ないと精神的にかなり嫌だ $value=~ s/%(..)/chr(hex($1))/eg; これのほうが速くない? 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になってしまうのでそれを何 #とかしたい Apache::Request使うからいいよべつに。 >>48 ひどすぎるそれ。 2次配布禁止ってなってるけど、それで正解だ。 むご過ぎて、2次配布する価値無しだ。 decode.plなんて汎用的な名前をつけるなよ・・ >>48 strictなコードで書いてほしい・・・ cgi-lib.plと同じじゃないかそれじゃ といっても最近はCGI.pm使うようになっちゃったからなぁ 無用だね モジュールの作り方を説明しているページってありませんか? ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉 __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン . || . || . ☆ノハヽθ ______ ||ノノ*^ー^) アーテステス (:::) ./| || / つと ||||. ./ . | |二 / [] .  ̄ . / / | ̄ ̄ ̄ ̄ ̄ ̄| . / |______|/ . Y ̄ ̄⌒⌒⌒⌒ ̄ ̄~`ヽ \\※※※※※※※ \ . .\\※※※※※※※ \ \\※※ 〆〃ハハ 〜♪ \ヽ γ∬∬´▽`)※ . \ . ヽ(~~~~~~∪~~∪~~~~~~~~)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ____ . / / | | \ アーテステス… / |二二| | | ww . \ \ | | ____./ | ̄ ̄ ̄ ̄ ̄ ̄| |囲 = 囲|  ̄ ̄ ̄ ̄ . ☆ノハヽ ヨシ!! . ノノ*^ー^) ||| |◎▼ / つと ( 99 ::) ⊂_)__) ( [] ))) .  ̄ ̄ ̄ ||◎▼☆ノハヽ シュッパーツ!! ( 99 ノノ*^ー^)o ( [] ))) / . . ̄ ̄ ̄ u─u ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,___,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;__, . | □ |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;□| | |___| □ |__|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;| |[]| || □ | |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ . \;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;/ |||◎◎/ \;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;/ . (======) トオイ… . \;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;/ (___)] . \;;;;;;;;;;;;;;; ;;;;;;;;/ u─u \;;;;;;;; ||◎▼☆ノハヽ ハイ、ミカンデス . . ノノハヽ ナンデウチシッテンノ… ( 99 ノノ*^ー^) (VvV;从_ ( [] ))), つ(::::) ~~~-⊂ ,-、)/ . . ̄ ̄ ̄ u─u . (つ し' / | . | | | ──|── . | / ̄| ̄\ | | | |/ .| | . .| | \ . __|__/.. . ...| | \ . \ / . . 〇 〇. / \ . . / \ キイテル?ヤッホー!! ./ \ エリノホウガカワry ./ ww . . oノハヽo ビックリシタノ… . 山 Σ(・ 。.・*;从 | ̄|| ̄ ̄|| ̄| / つつ |◎||■--||◎| ヽ_)_)´ .  ̄ . ̄ ̄ . ̄ . ドッカ〜ン!! . . γ''⌒⌒⌒ヽ (⌒;;;;⌒ ;;;;; ⌒) . ( (⌒;;;;; );;;;;) oノハヽo (;;;;( ;;;;; ) ) (・ 。.・+从 ( (;;;;;;; ;;;;; ) ;;;;;.) . /. 0T0 ガシャ!! . `ゞ 、,,;; ;;;;; ;;;,,ノ''" u─| ̄| . | . ;;;;;;;;;;;| . . . .| ;;;;| . | ;;;;;;;;;;| . . ハロプロショップ . | ;;;;| . | . ;;;;;;;;;;;|. . . . | ;;;;| . | ;;;;;;;;;;| ________ | き ;;;;;| . | . ;;;;;;;;;;;| || . | .|| .| みて ;;;;;| . | ;;;;;;;;;;| || . | .|| .|. た /| . | ;/| || 0|0ノハヽ☆ . . |. で /;;;;| . | . / ;;;;| || ノノノヘ(^ー^*从||. |. / ...└─ _____|/. |.._.._||_(゜皿 ゜ 川 )_||____|/ ( つ ヽ/ / . . (___/J ,.. -─ ´ ̄ ̄ ̄ ̄` ─- 、_ / i / , . | | JVし __,,..-一、 | __ L__ _,,...ニァT ||::::::::::::| / ,.‐'´/ | |_>ー<___/ |. lj:::::::::∠-一´/ / `/___,..-ニ',7 T´,.-‐'´ / _,./..,すぐにあの世に送ってやるぜ '┬─'´ // _/:ヽ‐ニー--‐シ' ̄ \ |l___///:::::::::::::::/i. |l | ``ニ- ´i':::::::::::::::::/ |l. | 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 やっぱりそういうレスが来ると思ったよ。 都合悪くなるとすぐ CGI::Minimal なんだからw ここに声高らかに宣言する。 釣れた と(´゚c_,゚` ) 都合悪くって何の都合? 悪いがちょっと意味わからんので説明してくれ・・・ 何につられたのかもようわからんw ∧_∧ ( ・∀・) | | ガガッ と ) | | Y /ノ .人 / ) .人 < >_∧∩ _/し' < >_∧∩`Д´)/ (_フ彡 V`Д´)/ / ←>>58 / ←>>62 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 8SOYCJA088 プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 8CZYB 明星食品は「明星 おうち千里眼 にんにく豚骨醤油ラーメン」を1月23日に全国で新発売する。価格は348円 (税別)。 read.cgi ver 07.4.7 2024/03/31 Walang Kapalit ★ | Donguri System Team 5ちゃんねる