自作CGIを評価するスレ (672レス)
1-

588: 2006/06/06(火)15:21 ID:Re1RmuFG(1) AAS
簡易予定表のようなものを組んでみたんですが、なんだかモッサリしてる気がします。
もっと簡潔に書けるような気がするんですが自分ではこれが限界でした。
あと、ファイルロックのやり方が合っているのか自信がありません。
一応動いていることは動いているんですが、問題はないでしょうか。
改良すべき点、根本的にこういう書き方に直した方が良い、とかあればアドバイスお願いします。
大まかな内容は以下のようなものです。

予定として保存する内容は「予定日(月と日)」と
「予定内容(長くても200バイト程度)」の2つでフォームから渡します。
予定を保存するファイルは月単位で作成します。
例えば2006年6月の予定の場合なら「200606.txt」というファイル名です。
省11
589
(4): 2006/06/06(火)15:22 ID:??? AAS
# 保存するファイル名
$a = sprintf("%04d%02d",$YEAR,$MON)
$file = "$a.txt";

# 月から日数を出す
if($MON == 1|3|5|7|8|10|12){
$m = 31;
}elsif($MON == 4|6|9|11){
$m = 30;
}else{
if($YEAR % 4 ==0){
省8
590: 後半 2006/06/06(火)15:23 ID:??? AAS
# 該当する月のファイルがなければ作成
if(!open(IN,"$file")){
open(OUT,">$file")
flock(OUT,2);
print OUT $date;
close(OUT);
}
open(IN,"$file");
flock(IN,2);
@A = <IN>;
省17
591
(1): 2006/06/06(火)15:45 ID:??? AAS
>>589
まだちゃんと読んでないが…。

>if($MON == 1|3|5|7|8|10|12){
>}elsif($MON == 4|6|9|11){
これって比べてるのは、両方とも $MON == 15 だよね。
どっちの条件にも入らないと思うけど…正しく動作してるの?
592
(1): 2006/06/06(火)15:51 ID:??? AAS
>$a = sprintf("%04d%02d",$YEAR,$MON)
セミコロンは?
動作するヤツうp
593: 2006/06/06(火)15:52 ID:??? AAS
ビット演算子を使っているんだ。
高度だな。
594
(1): 2006/06/06(火)16:09 ID:??? AAS
switch文を使うと見やすいんじゃないかな?

use Switch

switch ($MON) {
case [1,3,5,7,8,10,12] { $m = 31 }
case [4,6,9,11] { $m = 30 }
case [2] { $m = $YEAR % 4 ? 28 : 29 }
else { print "そんな月知らん" }
}
595: 589 2006/06/06(火)16:39 ID:??? AAS
レス遅くなりました。すみません。
該当部分を切り出して動作するコードをUPしてきます。
596
(1): 589 2006/06/06(火)17:02 ID:??? AAS
外部リンク[zip]:up.isp.2ch.net
UPしました。パスは「589」です。
日付のところは594さんのアドバイスにしたがって書き換えました。
アドバイスの方よろしくお願いします。
597: 589 2006/06/06(火)17:11 ID:??? AAS
>>591>>592
コードの一部分だけ抜き出してできるだけ短く書こうとしたので
分かりにくかった&書き損じがありました。すみませんでした。

>>594
perlでもswitchが使えるとは知りませんでした。
598: 2006/06/06(火)17:20 ID:??? AAS
いやperlではswitchは使えない。
599: 2006/06/06(火)17:24 ID:??? AAS
Switch なんてモジュールがあるのか知らんかった。
600: 2006/06/06(火)18:59 ID:??? AAS
cgi-lib.pl ktkr
601: 2006/06/07(水)00:26 ID:??? AAS
PerlはPHPとは違ってCPANを探せば考えられる大体の車輪は既にある。
602: 2006/06/20(火)01:54 ID:jChy1x4Z(1) AAS
>>596
見れない・・
603: 2006/07/08(土)12:44 ID:hGiPCYN9(1) AAS
switchがあったとは・・・
604: 2006/07/21(金)16:23 ID:BWWkPiVe(1) AAS
外部リンク[cgi]:cgi37.plala.or.jp
605: 2006/10/07(土)10:40 ID:L17fbc1O(1) AAS
@@@
606
(5): 2006/10/11(水)22:51 ID:e5FQIx7N(1/2) AAS
特定の板のスレタイ検索をして、選んだスレから画像とかのサムネイルを表示するスクリプトを書いてみまスた(・ω・`)
恐ろしく見づらいと重いまスが・・
外部リンク:vip.ty.land.to

2chスレ:php
でボチボチいじくったり、新しいことやったりしていきたいと思ってまスが、評価して欲しいス(・ω・`)
勉強かねてるので、車輪の再開発なのは承知でス
607
(1): 2006/10/11(水)23:36 ID:??? AAS
>>606
言葉遣い荒いけど、ばーっと書いた弊害なので許して。
取りあえずぱっとみてこんなもん。
・一部のうpろだは、リファラが不味いと弾かれる。
・画像がない場合の画像を一々作るのは無駄。
・CGIモジュール使え。
・グローバル変数も宣言しろ。
・これは好みだけど、設定の変数はハッシュに纏めた方が分かりやすいこともある。
・メインの流れはブロック作ってラベル付けた方が分かりやすいかも。
・正規表現の|は案外コストがかかる。配列にしてマッチング。
省6
1-
あと 65 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.008s