自作CGIを評価するスレ (672レス)
自作CGIを評価するスレ http://medaka.5ch.net/test/read.cgi/php/1049514428/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
68: nobodyさん [sage] 03/04/06 04:23 ID:??? #○ログファイル $def_log_file = q[./log.txt]; これは納得できるが #○一度に表示されるレスの件数。 #[3〜6]推奨。多く設定すると端末側で読み込めない場合があります。 $def_mess_page = qq[5]; こっちをダブルクオートで囲むのはなぜ? 数値をクオートで囲まれると変な気がする… http://medaka.5ch.net/test/read.cgi/php/1049514428/68
69: nobodyさん [sage] 03/04/06 04:25 ID:??? >>41 >>32 http://medaka.5ch.net/test/read.cgi/php/1049514428/69
70: nobodyさん [sage] 03/04/06 04:32 ID:??? myは本当は局所的に使うためなのはしってるんだけど どうしてもその前後で値が必要になったりすることが多いので サブルーチンなら先頭に全部まとめて書いてる・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/70
71: nobodyさん [sage] 03/04/06 04:34 ID:??? >>70 余りいい設計じゃないなぁ・・・ subは位置に依存しないものであるべき http://medaka.5ch.net/test/read.cgi/php/1049514428/71
72: 41 [sage] 03/04/06 04:37 ID:??? >>61 >・最初(〜300行目)のqqはなんだ? qq自体の意味でしょうか…?qならシングルクウォートでqqならダブルです。 入力は、ご使用していただく方に任意で入力してもらいます。量が多くてめんどうな気がしますけど…。 >インデントがおかしいのと >記述に一貫性がないのが気になるね。 つまり見にくいと…。私の中では今までで1番気をつけた記述だったりしますが… 頑張ります。 サブルーチンがそこそこ見られるのは良いと思う(ただ、もう少しstrictに書こう) strictってなんだろう、汗。
調べてみます。 >これは個人的な趣味だけど、俺はグローバルなオプションはハッシュにする。 >%option =(board_name => "hoge", max_mes => 50 ); みたいに。 そうですか、私はこの記述で 「グローバルな変数の先頭にmain」をつけ、 「ルーチンのみの変数の先頭にルーチン名」を付けたのですが、 名前が長くなりすぎて失敗してしまいました。 >>65 どうもです。 もしかしたら、返事を飛ばしてしまった方が居るかもしれませんがすみません。 明日からでも記述の整理をしたいと思います。 まだまだなにかありましたら、お願いします。
ヒマな方は眺めてやって下さい。 当たり前ですが、全部読んで参項にさせてもらってます。 http://medaka.5ch.net/test/read.cgi/php/1049514428/72
73: 41 ◆hht1jkpw9E [sage] 03/04/06 04:43 ID:??? >>69 はい、これで行きます、トリップ。 >>68 もし、 #○一度に表示されるレスの件数。 #[3〜6]推奨。多く設定すると端末側で読み込めない場合があります。 $def_mess_page = 5; とした場合、どこに入力したら良いか目で確認しにくいかと思いまして…。 数字なのでシングルではなく、ダブルで囲んでます。 なんて言うのか、入力する場所を [ここ]; にしたら始めて設置する人でも分かりやすいと考えた結果こうなりました。 http://medaka.5ch.net/test/read.cgi/php/104951
4428/73
74: nobodyさん [sage] 03/04/06 04:47 ID:??? >>73 んー基本的なことを言わせてもらうと・・・ コメントでちゃんと書いとけば理解してもらえる範囲じゃないかと思うけどね・・・ それでわからないっていうのは相手する必要が無いような・・・(ぉ http://medaka.5ch.net/test/read.cgi/php/1049514428/74
75: nobodyさん [sage] 03/04/06 04:48 ID:??? >>71 激しく意味不明なやつになっちまったけど sub saitama{ my ($value,$saitama,$hoge); foreach $value (@_){ ($saitama,$hoge) = split(/,/,$value); if($saitama == $hoge){ return 1; } } return 0; } こんなやつもだめ?ってこと http://medaka.5ch.net/test/read.cgi/php/1049514428/75
76: nobodyさん [sage] 03/04/06 04:53 ID:??? って言うか最近多い「4」って香具師は「4番」ではなく、コテハン? 普通に紛らわしい。なんとかしてほしい。 http://medaka.5ch.net/test/read.cgi/php/1049514428/76
77: nobodyさん [sage] 03/04/06 04:55 ID:??? このスレタイっておかしくない? × 自作CGIを評価するスレ ○ 自作CGIを評価してもらえるスレ ○ 自作CGIを評価していただくスレ じゃない? http://medaka.5ch.net/test/read.cgi/php/1049514428/77
78: 71 [sage] 03/04/06 04:55 ID:??? >>75 sub saitama{ my $ret = 0; foreach my $value (@_){ my ($saitama,$hoge) = split(/,/,$value); if($saitama == $hoge){ $ret = 1; last; } } return $ret; } 私ならこう書くかな http://medaka.5ch.net/test/read.cgi/php/1049514428/78
79: 75 [sage] 03/04/06 05:00 ID:??? まぁ意識しろって言われたら 漏れならこう書くんだけど sub saitama{ foreach my $value (@_){ my ($saitama,$hoge) = split(/,/,$value); if($saitama == $hoge){ return 1; } } return 0; } 78のコードと比べるとどっちのほうが 好まれるのかい?まぁ下らんと言えば下らないのだが・・・ >>73 use strict 使ってみたら? http://medaka.5ch.net/test/read.cgi/php/1049514428/79
80: 71 [sage] 03/04/06 05:03 ID:??? まぁ、書き捨てにするか後から見やすく書くかのレベルになる罠(w http://medaka.5ch.net/test/read.cgi/php/1049514428/80
81: nobodyさん [sage] 03/04/06 05:05 ID:??? >>66 普通の変数も無名ハッシュっていう位置づけじゃなかったっけ? http://medaka.5ch.net/test/read.cgi/php/1049514428/81
82: 37 ◆0wPZQfeVoI [] 03/04/06 05:07 ID:t3fZoblF >>76 非常にすみません。 Perlの極意スレの4番です。 もう沈んでどこかに行ったスレです。 なんとなくそのまま4でした、改名します、37です。 http://medaka.5ch.net/test/read.cgi/php/1049514428/82
83: nobodyさん [sage] 03/04/06 05:09 ID:??? >>79 漏れは 何回も使う関数的なやつは結構まともに書いてるけど 本体が長くなるからただ分けただけのサブルーチン的なものだと かなりだらしないわ。 一応strictなコードでmod_perlで動いてる http://medaka.5ch.net/test/read.cgi/php/1049514428/83
84: nobodyさん [sage] 03/04/06 05:10 ID:??? 「出口は一つ」をかたくなに守るのは「gotoを意地でも使わない」と同様に愚行だ。 エラー処理でも if (真) { if (真) { if (真) { # 何か処理 } else { $ret = 0; } } else { $ret = 0; } } else { $ret = 0; } より if (偽) {return 0;} if (偽) {return 0;} if (偽) {return 0;} # 何か処理 の方が圧倒的に見やすいだろう。だから俺は>>79だな。 http://medaka.5ch.net/test/read.cgi/php/1049514428/84
85: nobodyさん [sage] 03/04/06 05:12 ID:??? 「エラー処理を先にやれ」っていう格言をどっかで見た。 それ以上続けるのが無意味と分かっている場合に だらだらと引きずるのは良くない。すぱっとreturnすべき。 http://medaka.5ch.net/test/read.cgi/php/1049514428/85
86: 71 [sage] 03/04/06 05:13 ID:??? >>84 まぁ、別に好きなように書けばいいんだけど、 グローバル変数の値をサブルーチンから出力することもあるし・・・ それ以前に、どのレベルで言ってるかつーのが気になる所かもなぁ ちなみにgotoは使わないよ。必要ないから(w http://medaka.5ch.net/test/read.cgi/php/1049514428/86
87: 37 ◆0wPZQfeVoI [] 03/04/06 05:15 ID:t3fZoblF >>84 なるほど、私は上のほうの書き方しますね.. やはり、コードが見やすいというのもプログラムの重要な要素に はいるのでしょうか? http://medaka.5ch.net/test/read.cgi/php/1049514428/87
88: 79 [sage] 03/04/06 05:16 ID:??? >>84 それ書くなら if(真 && 真 && 真){何か}else{return 0;} だろうなぁ… まぁ趣味でやってるプログラミングなんで 動いたら嬉しいって程度なんだが(w >>83 関数だと割ときれいに書くな 漏れも http://medaka.5ch.net/test/read.cgi/php/1049514428/88
89: 71 [sage] 03/04/06 05:21 ID:??? >>87習慣づけしとけばスパゲッティなソースにはなりにくいのが作れると思うけどねん returnは複数付けるのが一般的らしいな、覚えとこう http://medaka.5ch.net/test/read.cgi/php/1049514428/89
90: 79 [sage] 03/04/06 05:22 ID:??? >>37 貴殿のソースをみたんですが 653-669行・・・ これなんすか?(w http://medaka.5ch.net/test/read.cgi/php/1049514428/90
91: 37 ◆0wPZQfeVoI [] 03/04/06 05:26 ID:t3fZoblF >>89さん そのためには1度しか使わない処理でも無駄にサブルーチン作って、 見やすくすることも必要でしょうか? 趣味で作るので、自分以外がソース読むことが無かったため とりあえず、自分が読めれば気にしなかったのですが。 http://medaka.5ch.net/test/read.cgi/php/1049514428/91
92: 37 ◆0wPZQfeVoI [] 03/04/06 05:29 ID:t3fZoblF >>90 エラー処理ですが、 if () { えらー1} if () { えらー2} if () { error } としたほうがいいですかね? http://medaka.5ch.net/test/read.cgi/php/1049514428/92
93: 71 [sage あっちでは251(w] 03/04/06 05:31 ID:??? >>91 慣れてない時は単純な処理にでもサブルーチンは作ってたけど、 今は、機能ごとにサブルーチンを作ってるって感じですね 同じ処理でも規模がおっきくないとそのまま書きなぐりすることがおおいです http://medaka.5ch.net/test/read.cgi/php/1049514428/93
94: 79 [sage] 03/04/06 05:32 ID:??? >>92 エラーで止める優先度あるの? unless ($a < 100){&error("$aが100以下じゃありません");} unless ($b eq 'GET'){&error("$bがgetじゃありません");} 〜〜 でいいと思うが・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/94
95: 71 [sage あっちでは251(w] 03/04/06 05:35 ID:??? >>92 @error =( err1, err2, ); $error[$code]; みたいなことを最近よくするな(w http://medaka.5ch.net/test/read.cgi/php/1049514428/95
96: nobodyさん [sage] 03/04/06 05:38 ID:??? >>88 あっと、>>84の例ではエラー処理が同一に書いてしまったのでおっしゃるとおりなんですが、 エラー処理が失敗した段階によって異なると考えてくださいませ http://medaka.5ch.net/test/read.cgi/php/1049514428/96
97: nobodyさん [sage] 03/04/06 05:40 ID:??? ×エラー処理が同一に ○エラー処理の部分に同一の処理を プログラム言語の前に日本語勉強してきます。。。 http://medaka.5ch.net/test/read.cgi/php/1049514428/97
98: 37 ◆0wPZQfeVoI [] 03/04/06 05:40 ID:t3fZoblF >>93 なるほどー。 私は2度以上行う処理で引数と返り値が必要なものをサブルーチンに するようにしていますが、今回少し考え直そうかと。 http://medaka.5ch.net/test/read.cgi/php/1049514428/98
99: nobodyさん [sage] 03/04/06 05:43 ID:??? つーか>>41の掲示板でかッ! 携帯用だと処理が細かくなって増えるのか? http://medaka.5ch.net/test/read.cgi/php/1049514428/99
100: 79 [sage] 03/04/06 05:43 ID:??? 関係無いが・・・漏れはエラー処理の場合 第一引数は数値だよ第二引数になんかメモ sub error内でエラーログに記録する内容とかを振り分けることができる perlだけじゃないが でかいやつになると エラーメッセージ一覧表だけで数KBになる・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/100
101: 37 ◆0wPZQfeVoI [] 03/04/06 05:43 ID:t3fZoblF >>94さん 確かにその通りです。 優先順位などありません.. http://medaka.5ch.net/test/read.cgi/php/1049514428/101
102: 71 [sage] 03/04/06 05:48 ID:??? 基本的にエラーメッセージって書かないなぁ(ぉ 規定外の値だとデフォルト値になるようにしてるなぁ http://medaka.5ch.net/test/read.cgi/php/1049514428/102
103: 79 [sage] 03/04/06 05:49 ID:??? 人によってコーディングの仕方が かなり違うことがわかったんで 今日は寝るサラバ 起きたら局所変数を意識したプログラムを書いてみよう。 http://medaka.5ch.net/test/read.cgi/php/1049514428/103
104: 37 ◆0wPZQfeVoI [] 03/04/06 06:08 ID:t3fZoblF ちょっと修正しました。批判していただいた部分は まだすべて修正できていませんが、一応アド載せときます。 BBS: http://hex51.darktech.org/cgi-bin/the/bbs.pl SRC: http://hex51.darktech.org/the.txt 余談ですが、部屋がめちゃめちゃ寒いです.. http://medaka.5ch.net/test/read.cgi/php/1049514428/104
105: 71 [sage] 03/04/06 06:17 ID:??? my $mini_cgi = './mini.pl'; my $cntfile = './count.dat'; my $log_dir = './logs'; our $lock_name = 'lock'; <中略> my $t_h_width = 0; my $t_f_width = 70; my $name_size = $name_max - 4; my $title_size = $text_cols; この部分って全部グローバルだからourになっちゃうよん my $hoge #グローバルと同意で無意味 { my $hoge; #○ { my $hoge; #○ } } みたいにブラケットで括られた中(サブルーチンでもなんでもいいけど・・・)で宣言した部分じゃないと無意味 http://medaka.5
ch.net/test/read.cgi/php/1049514428/105
106: 37 ◆0wPZQfeVoI [] 03/04/06 06:29 ID:t3fZoblF はい、実は上のほうですでに言われました。 さっさとourにしておきます。 http://medaka.5ch.net/test/read.cgi/php/1049514428/106
107: 37 ◆0wPZQfeVoI [] 03/04/06 06:33 ID:t3fZoblF 修正しますた。 http://medaka.5ch.net/test/read.cgi/php/1049514428/107
108: nobodyさん [sage] 03/04/06 06:34 ID:??? ま、あせらずゆっくりいけやー。 http://medaka.5ch.net/test/read.cgi/php/1049514428/108
109: 37 ◆0wPZQfeVoI [sage] 03/04/06 06:52 ID:??? どうもー。 取り合えず今日は寝てません。 http://medaka.5ch.net/test/read.cgi/php/1049514428/109
110: nobodyさん [sage] 03/04/06 08:06 ID:??? my でスコープはファイル・パッケージ内に限定されるんだから意味はあると思うよ。 our にはならない。 別のパッケージから読みこんだりしてるのでなければ、 わざわざ our にする方が意味ないと思うけど? http://medaka.5ch.net/test/read.cgi/php/1049514428/110
111: これ自信作だぜ [] 03/04/06 08:51 ID:dTzeXpbT 修正しましたが何か? http://medaka.5ch.net/test/read.cgi/php/1049514428/111
112: あぼーん [あぼーん] 03/04/06 08:52 ID:??? ┌┬┬┬┐ ―――┴┴┴┴┴―――――、 . . /  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ || __________ ./ ∧// ∧ ∧| || ||| || / [/____(゚_//[ ].゚Д゚,,) ||___||| || < こんなのが有りますた . ||_. * _|_| ̄ ̄ ∪|.|. |ヽ.__|| \__________ . lO|o―o|O゜.|二二 |.| 救済病院 || .| ∈口∋ ̄_l__l⌒l_|___|_l⌒l._||  ̄ ̄`ー' ̄ `ー' `ー' `ー' h
ttp://saitama.gasuki.com/koumuin/ http://medaka.5ch.net/test/read.cgi/php/1049514428/112
113: これ自信作だぜ [] 03/04/06 08:52 ID:dTzeXpbT ↑追加 http://oasis.mininddns.net/ http://medaka.5ch.net/test/read.cgi/php/1049514428/113
114: これ自信作だぜ [] 03/04/06 08:53 ID:dTzeXpbT スマソ。スッペルミス http://oasis.minidns.net/ http://medaka.5ch.net/test/read.cgi/php/1049514428/114
115: あぼーん [あぼーん] 03/04/06 09:17 ID:??? ∋8ノノハ.∩ 川o・-・)ノ <先生!こんなのがありました! __/ / / \(_ノ ̄ ̄ ̄\ ||ヽ|| ̄ ̄ ̄ ̄|| ...|| ̄ ̄ ̄ ̄|| http://saitama.gasuki.com/shinagawa/ http://medaka.5ch.net/test/read.cgi/php/1049514428/115
116: これ自信作だぜ [] 03/04/06 10:29 ID:dTzeXpbT http://oasis.minidns.net/ 蜜柑性だけどな http://medaka.5ch.net/test/read.cgi/php/1049514428/116
117: nobodyさん [sage] 03/04/06 10:35 ID:??? [index.cgi:26:warn] Use of uninitialized value in concatenation (.) or string at /www/oasis/html/index.cgi line 26. [index.cgi:26:warn] Use of uninitialized value in concatenation (.) or string at /www/oasis/html/index.cgi line 26. ってでてるよ>116 http://medaka.5ch.net/test/read.cgi/php/1049514428/117
118: nobodyさん [sage] 03/04/06 10:45 ID:??? 書き方まずかったかな? >>71はブロックの外で宣言すると、例えばサブルーチンの中からでも参照できてしまうので 変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。 修正というか、むしろ改悪されえてるような・・・。 our にしてしまうと、他のファイルからも値を参照出来る様になってしまうので、 # つっこみたかったのは、 # > この部分って全部グローバルだからourになっちゃうよん # my で宣言してるのに勝手に our にはならないよー。ってこ
と。 よくある方法だと、main関数(サブルーチン)を作るか、 単にブロックで囲む。(ラベルは別にいらないけど便宜上) MAIN:{ my $foo = 'bar'; ; } ちなみに、定数宣言なら変数にはせずに、 use constant LOG_DIR => './logs'; という風にしておくと、代入できないから グローバルとか関係なく中の値は保証されるよ。 http://medaka.5ch.net/test/read.cgi/php/1049514428/118
119: 37 ◆0wPZQfeVoI [sage] 03/04/06 14:26 ID:??? なるほど。 囲ってみます。 http://medaka.5ch.net/test/read.cgi/php/1049514428/119
120: 71 [sage] 03/04/06 15:01 ID:??? >>118 >変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。 そいう意味.、言い方まずかったですな・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/120
121: nobodyさん [sage] 03/04/06 15:42 ID:??? {}って while{} foreach{} for{} sub{} {} が?有効なの if{}はどうなるの? http://medaka.5ch.net/test/read.cgi/php/1049514428/121
122: nobodyさん [sage] 03/04/06 15:46 ID:??? 漏れはグローバル変数使いまくりだけど だめかい? http://medaka.5ch.net/test/read.cgi/php/1049514428/122
123: 71 [sage] 03/04/06 15:49 ID:??? >>121 基本的に {}で囲ってる部分は全部スコープになりますよん if{}でも eval{}でも 一緒 ファイルの重複を避ける処理 { my %count; @array = grep(!$count{$_}++, @array); } これみたいに、スコープを作るために括る事もありますし http://medaka.5ch.net/test/read.cgi/php/1049514428/123
124: nobodyさん [sage] 03/04/06 15:57 ID:??? 別に全部$hogehogeみたいなやつでいいじゃん なんで局所変数とかみんなつかうの???? http://medaka.5ch.net/test/read.cgi/php/1049514428/124
125: 71 [sage] 03/04/06 16:00 ID:??? >>124見通しが悪くなるから。 誤動作の元にもなりかねんし http://medaka.5ch.net/test/read.cgi/php/1049514428/125
126: nobodyさん [sage] 03/04/06 16:05 ID:??? >>125 でも配ってるやつってほとんどグローバル変数のみじゃん http://medaka.5ch.net/test/read.cgi/php/1049514428/126
127: 71 [sage] 03/04/06 16:12 ID:??? >>126だから自分で組んでるんだが? グローバルがいいっていうなら、そうすればいいのじゃない? 自分だけでやっとればいいってのなら一向にかまわないけど、 複数の人がからんでくるとなるとそうもいかない http://medaka.5ch.net/test/read.cgi/php/1049514428/127
128: 37 ◆0wPZQfeVoI [sage] 03/04/06 16:44 ID:??? 取り合えず少し直してみました。 今日はPHPで学校の掲示板を作るので あまり変更はないかもしれません。 >>71さん 気をつけないと if ($hoge eq 'hoge') { my $foo = 'hoge!'; } print $foo; この場合マズイですよね? チョットmyについていろいろと試してみます。 http://medaka.5ch.net/test/read.cgi/php/1049514428/128
129: 71 [sage] 03/04/06 16:49 ID:??? >>128 それはスコープの外に print $fooがあるので動作しない if ($hoge eq 'hoge') { my $foo = 'hoge!'; print $foo; } コレが正解 http://medaka.5ch.net/test/read.cgi/php/1049514428/129
130: 37 ◆0wPZQfeVoI [sage] 03/04/06 19:43 ID:??? >>129さん OKっす。 要はCのautoですよね? http://medaka.5ch.net/test/read.cgi/php/1049514428/130
131: nobodyさん [sage] 03/04/06 20:10 ID:??? myを使わなきゃダメって訳じゃない。 使った方が良いってだけで。 http://medaka.5ch.net/test/read.cgi/php/1049514428/131
132: nobodyさん [sage] 03/04/07 00:03 ID:??? グローバルである必要がないならレキシカルを使うほうが 安全だし速度的にも有利だからね。 http://medaka.5ch.net/test/read.cgi/php/1049514428/132
133: nobodyさん [sage] 03/04/07 15:58 ID:??? use vars使うのは反則? http://medaka.5ch.net/test/read.cgi/php/1049514428/133
134: nobodyさん [sage] 03/04/07 16:14 ID:??? ありじゃないの? じゃなきゃそんなモジュール作らんよ。 http://medaka.5ch.net/test/read.cgi/php/1049514428/134
135: nobodyさん [sage] 03/04/07 18:46 ID:??? >>133 使い方次第 http://medaka.5ch.net/test/read.cgi/php/1049514428/135
136: nobodyさん [sage] 03/04/07 22:42 ID:??? localを使おう http://medaka.5ch.net/test/read.cgi/php/1049514428/136
137: ◆YHmsETNOS2 [sage] 03/04/08 16:35 ID:??? すみませんがちょっと漏れのスクリプトを見てください。 ソートの練習なんです。 いちおう漏れの思っている動作しているのですが,突っ込むところがあれば,後学のために色々教えてください。 ソースはこちら, ttp://members.tripod.co.jp/angeldayan/ 使ったデータはこちら ttp://members.tripod.co.jp/angeldayan/data.txt 要 cgi-lib.pl です。 たいしたものじゃなくてごめんなさい。 初心者なんで,これでも1週間かかっちゃったんです。 よろしくお願いします。 http://medaka.5ch.net/t
est/read.cgi/php/1049514428/137
138: nobodyさん [sage] 03/04/08 18:57 ID:??? >>137 myとかの使い方覚えたほうがいいかも まだはじめたばかりなのならPHPもいいかもよ でスクリプトに関しては ファイルをアップロードするわけでもないんだし 自前でデコードしよう。 http://medaka.5ch.net/test/read.cgi/php/1049514428/138
139: ◆IzdKJ.WAZA [sage] 03/04/08 19:02 ID:??? >>137 漏れも挑戦してみていいかい? http://medaka.5ch.net/test/read.cgi/php/1049514428/139
140: ◆IzdKJ.WAZA [sage] 03/04/08 19:45 ID:??? 疲れた。。とりあえずこんなん? http://iwh11.hp.infoseek.co.jp/p/e/r/perldev/cgi-bin/upload/source/039.txt PerlスクリプトなんでDOSから動かしてね http://medaka.5ch.net/test/read.cgi/php/1049514428/140
141: nobodyさん [sage] 03/04/08 20:25 ID:??? my, our でも変数のスコープは同じなんだけどなぁ。 varsプラグマ(v5.6以降だと our)を使うのは、 use strict 'vars'プラグマを有効にした時に、 複数のパッケージである変数を別のパッケージから使いたい場合、等。 no strict は、場合によっては反則 ... http://medaka.5ch.net/test/read.cgi/php/1049514428/141
142: nobodyさん [sage] 03/04/08 23:45 ID:??? そういえば、さっきmyとmyなしでベンチマークを行ったら myの方が3,4倍遅かったのだけど…。メモリ消費は解らない。 http://medaka.5ch.net/test/read.cgi/php/1049514428/142
143: 71 [sage] 03/04/09 03:32 ID:??? 自分の趣味でリファレンスを使ってソースを書いてみた・・・ cgi-lib使ったことないからあてずっぽうだけど、かなりソース書きなおす事になったねぇ ttp://iwh15.hp.infoseek.co.jp/p/e/r/perldev/cgi-bin/upload/source/041.txt http://medaka.5ch.net/test/read.cgi/php/1049514428/143
144: 71 [sage] 03/04/09 03:33 ID:??? >>143 8-9行目 if ($in{'rev'}){ my $script = 'http://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'}; ココ逆だな・・・ my $script = 'http://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'}; if ($in{'rev'}){ http://medaka.5ch.net/test/read.cgi/php/1049514428/144
145: ◆YHmsETNOS2 [sage] 03/04/09 04:42 ID:??? >>138 > myとかの使い方覚えたほうがいいかも わかりました。勉強します。 > PHPもいいかもよ perlと心中しまつ。 > ファイルをアップロードするわけでもないんだし いやいや、今後画像をあぷすて貼り付けるつもりなので。。。 いつになるかわかりませんが。。。。。 >>144 うわぁ、ソースが綺麗でつ。 でも、動きません。。。。。 ローカルでは「ページを表示できません」で動きませんし、 サーバにあげてみた所、最初の画面は表示するものの、 情報のリンクのところが h
ttp://サーバー名/$script?action=1&rev=1&n=0 って、$script そのままでつ。 結果は404でつ。 自分でも調べてみまつ。 http://medaka.5ch.net/test/read.cgi/php/1049514428/145
146: 71 [sage] 03/04/09 04:57 ID:??? >>145 動かしてないからねぇ(w 穴ありまくりであろうかと http://medaka.5ch.net/test/read.cgi/php/1049514428/146
147: nobodyさん [sage] 03/04/09 09:53 ID:??? > そういえば、さっきmyとmyなしでベンチマークを行ったら > myの方が3,4倍遅かったのだけど…。メモリ消費は解らない。 根拠を示さずに結果だけ取り出して言われても…。誤解されないかな? my の何のベンチマークを行なったの? ループ・ブロック内で変数を宣言して、そのオーバーヘッドを測っていた なんて事はないよね?それとも、ホントに変数の参照・代入が3〜4倍もかかったりした? http://medaka.5ch.net/test/read.cgi/php/1049514428/147
148: nobodyさん [sage] 03/04/09 10:12 ID:??? >>142 myのほうが遅いというのはちょっと信じがたいな。 ブロック外から参照される必要がないからシンボルテーブルにも 登録されないし、むしろ速くなるはずだが・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/148
149: ◆YHmsETNOS2 [sage] 03/04/10 04:22 ID:??? >>146 $html =<<'EOT'; を $html =<<"EOT"; でOKでした。 なお、ローカルで動かない件は、cgi-lib.pl へのパスが違っていたというアフォが原因。 http://medaka.5ch.net/test/read.cgi/php/1049514428/149
150: 71 [sage] 03/04/10 05:35 ID:??? >>149 シングルクオートよくやっちゃうんですよ〜(w 動いてよかったです http://medaka.5ch.net/test/read.cgi/php/1049514428/150
151: nobodyさん [sage] 03/04/10 06:38 ID:??? cgi-bin.pl って 確か、CGI.pmがサポートしてたはず・・・ 標準モジュールだよ。 use CGI qw(:cgi-bin); http://medaka.5ch.net/test/read.cgi/php/1049514428/151
152: 71 [sage] 03/04/10 06:41 ID:??? >>151 自分で処理を書くもんでねぇ・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/152
153: nobodyさん [] 03/04/10 10:43 ID:ljl/7aqx ベンチマーク取って見たけど…明らかに my を使った方が高速。 -w と use strict 外して my も何も付けない場合とか、 our も試して見たけど。速度的には my < our < local って順番だったよ。 #! perl -w use strict; use Benchmark qw(:all); my $count = 100; my $code1="my \$code=1;"; map{$code1 .= "\$code++;\n"}(1..$count); my $code2="local \$code=1;"; map {$code2 .= "\$code++;\n"}(1..$count); timethese(1000,{ 'Lexical' => sub {eval $code1}, 'Dinamic' => sub {ev
al $code2} }); ---- Benchmark: timing 1000 iterations of Dinamic, Lexical... Dinamic: 11 wallclock secs (10.60 usr + 0.00 sys = 10.60 CPU) @ 94.34/s (n=1000) Lexical: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 467.29/s (n=1000) http://medaka.5ch.net/test/read.cgi/php/1049514428/153
154: nobodyさん [sage] 03/04/10 13:31 ID:??? >>153 追試。 --- bench --- use strict; use Benchmark; my $loop = 5000; my $code1 = 'my $code = 1;' . '$code++;' x 100; my $code2 = 'local $code = 1;' . '$code++;' x 100; timethese($loop, { '1_my' => sub { eval $code1 }, '2_local' => sub { eval $code2 } }); --- ● ActivePerl Build 522 on Win98SE Benchmark: timing 5000 iterations of 1_my, 2_local... 1_my: 4 wallclock secs ( 4.45 usr + 0.00 sys = 4.45 CPU) Global symbol "$code" requires explici
t package name at (eval 5005) line 1. 2_local: 8 wallclock secs ( 7.75 usr + 0.00 sys = 7.75 CPU) ● Perl 5.005_03 on FreeBSD 4.8R Benchmark: timing 10000 iterations of 1_my, 2_local... 1_my: 6 wallclock secs ( 5.62 usr + 0.01 sys = 5.62 CPU) Global symbol "$code" requires explicit package name at (eval 10005) line 1. 2_local: 11 wallclock secs (10.92 usr + 0.02 sys = 10.94 CPU) ● Perl 5.8.0 on FreeBSD 4.8R Benchmark: timing 10000 iterations of 1_my, 2_local... 1_my: 4 wallclock secs ( 4.74 usr +
0.00 sys = 4.74 CPU) @ 2108.73/s (n=10000) 2_local: 18 wallclock secs (17.20 usr + 0.00 sys = 17.20 CPU) @ 581.55/s (n=10000) http://medaka.5ch.net/test/read.cgi/php/1049514428/154
155: nobodyさん [sage] 03/04/10 18:05 ID:??? >>121 if ( ( my $aho = $query->param('hogehoge') ) eq 'hoge') { $a =~ s/a/b/; $nazoflag .= $a; } else { # $ahoは見える。 } # $ahoは見えない。 while ( defined ( my $line = <IN> ) ) { # $lineは見える } continue { # 見える } # 見えない こういう場合のスコープについては、その制御構文の最後までに限定される。←あいまいだな… http://medaka.5ch.net/test/read.cgi/php/1049514428/155
156: nobodyさん [sage] 03/04/10 18:08 ID:??? 2行目が間違ってた。$aだとuse strictでエラーにならないから$ahoにしたんだけど、 これは、、sort用にこっそり、エラーにしないようになってるのかな。 追加、これはなかなか使える foreach my $hoge (@list) { } http://medaka.5ch.net/test/read.cgi/php/1049514428/156
157: nobodyさん [] 03/04/10 18:36 ID:ljl/7aqx >>155 質問。continue って何? http://medaka.5ch.net/test/read.cgi/php/1049514428/157
158: nobodyさん [sage] 03/04/10 18:58 ID:??? man perlsyn http://medaka.5ch.net/test/read.cgi/php/1049514428/158
159: nobodyさん [sage] 03/04/10 20:47 ID:??? ”次のループに移る前に実行されるブロック”であってる? こんな制御構文あったんだ。知らなかった。Thx >> 158 http://medaka.5ch.net/test/read.cgi/php/1049514428/159
160: nobodyさん [sage] 03/04/10 20:58 ID:??? うん。これは、nextとかを使うとき、行番号が確実に進むようにする、みたいに使う http://medaka.5ch.net/test/read.cgi/php/1049514428/160
161: ◆MvRbZL6NeQ [sage] 03/04/11 00:23 ID:??? なるほど http://medaka.5ch.net/test/read.cgi/php/1049514428/161
162: nobodyさん [ ] 03/04/11 00:36 ID:??? つまりはforの後処理か http://medaka.5ch.net/test/read.cgi/php/1049514428/162
163: ◆YHmsETNOS2 [sage] 03/04/12 20:17 ID:??? 再び。。。 すみませんがちょっと漏れのスクリプトを見てください。 前回のソートの練習に加え、ページの分割もしてみますた。 いちおう漏れの思っている動作しているのですが,突っ込むところがあれば,後学のために色々教えてください。 なお、前回指摘された “myとかの使い方” は。。。。。(^^A ソースはこちら, ttp://members.tripod.co.jp/angeldayan/test.txt 使ったデータはこちら ttp://members.tripod.co.jp/angeldayan/data.txt 要 cgi-lib.pl です。 たいしたものじゃなくて
ごめんなさい。 http://medaka.5ch.net/test/read.cgi/php/1049514428/163
164: 71 [sage] 03/04/12 22:26 ID:??? >>163 登録データの件数が増えるのならば sortの cmp と <=>のルーチンを考えたほうがいいかも foreach(@keys){ if($_->[$n] !~ /^\d*$/){ $num_flug =1; last; } } データ量増えていくと、cmpを使う場合処理が遅くなる。 if($n= 4){ if($rev){ @keys = @keys[ sort {$keys[$b]->[$n] <=> $keys[$a]->[$n]} 0 .. $#keys ]; }else{ @keys = @keys[ sort {$keys[$a]->[$n] <=> $keys[$b]->[$n]} 0 .. $#keys ]; } }else{ if($rev){ @keys = @keys[ sort {$keys[$b]->
;[$n] cmp $keys[$a]->[$n]} 0 .. $#keys ]; }else{ @keys = @keys[ sort {$keys[$a]->[$n] cmp $keys[$b]->[$n]} 0 .. $#keys ]; } } みたいな感じかになろうか・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/164
165: 71 [sage] 03/04/12 22:31 ID:??? >>164 if($n= 3){ だな、このデータの場合 http://medaka.5ch.net/test/read.cgi/php/1049514428/165
166: nobodyさん [sage] 03/04/12 22:53 ID:??? =なんですか? http://medaka.5ch.net/test/read.cgi/php/1049514428/166
167: 71 [sage] 03/04/12 23:00 ID:??? >>166 ==だね(汗 http://medaka.5ch.net/test/read.cgi/php/1049514428/167
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 505 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s