七行プログラミング (452レス)
上下前次1-新
1(9): 02/11/01 18:06 ID:umVq3FGM(1)調 AAS
 ・7行×79文字  
  ・Perl  
    
  どうぞ。 
2(5): マリモーマ ◆jbBCmetwgw  02/11/01 18:28 ID:HKLNcbVm(1/2)調 AAS
 2GET  7行だけなら 何もできない罠 
3:  ◆FruitsMIpE  02/11/01 18:36 ID:??? AAS
 while (1) { print "無理です"; } 
4(5): 02/11/01 18:39 ID:oU5vKkbM(1)調 AAS
 とりあえず7行でカウンタを作ろう 
5: マリモーマ ◆jbBCmetwgw  02/11/01 18:39 ID:HKLNcbVm(2/2)調 AAS
 無理ですの 無限ループか 怖いな 
6: 02/11/01 18:50 ID:??? AAS
 PHPやJavaScriptも入れてくれ。 
7(3): [0] 02/11/01 18:52 ID:??? AAS
 #!/usr/local/bin/perl 
  
 if (>>1 = "バカ") { 
     print "イッテヨシ"; 
 } else { 
     print "マターリしましょう"; 
 } 
8(2): 02/11/01 19:29 ID:??? AAS
 #!/usr/bin/perl 
 my $logfile = './count.log'; 
 my $addr = $ENV{'REMOTE_ADDR'}; 
 open( FILE,"+<$logfile" ) or die; 
 flock( FILE, 2 ); 
 ( $_ = <FILE> ) =~ /^(.*?):(.*)$/; 
 my ( $count, $ip ) = ( $1, $2 ); 
 $count++ if $addr ne $ip; 
 seek( FILE, 0, 0 ); 
 print FILE "$count\:$addr"; 
 truncate( FILE, tell ); 
 close FILE; 
 print "Content-type: text/plain\n\n"; 
 printf( "%.5d", $count ); 
 exit; 
  
 自作のカウンターです。元はKENTですが原型無いです。 
 一応多重カウント防止、桁そろえします。 
 これなんとか7行にできそーなんだけど、どうでそう? 
9:  ◆hMJAPH9PWA  02/11/01 19:43 ID:??? AAS
 何とかも何も、変数の冗長性を残しても3行になったよ。 
 #!/usr/bin/perl -w 
 $addr=$ENV{REMOTE_ADDR};open L,"+<.log";flock L,2;($c,$ip)=split/:/,<L>; 
 if($addr ne$ip){$c++;seek L,0,0;print L "$c:$addr";truncate L,tell(L);print 
 "Content-Type:text/plain\n\n$c"} 
10(3): 02/11/01 19:53 ID:??? AAS
 ワーイ 3行にナッター 有難う。 
 まだまだperl勉強中の身ですー 
11(1):  ◆hMJAPH9PWA  02/11/01 20:47 ID:??? AAS
 と思ったらバグがあった。後半の処理全部ifブロックに入れたらダメじゃん。 
 しかも3行じゃなくて3行ね。 
 ついでに変数を短く。flockしなけりゃ3行いけるね。 
 #!/usr/bin/perl -w 
 $a=$ENV{REMOTE_ADDR};open L,"+<l";flock L,2;($c,$i)=split/:/,<L>;if($a ne$i){ 
 $c++;seek L,0,0;print L"$c:$a";truncate L,tell L}print"Content-Type:text/plain 
 \n$c" 
12(2): 02/11/01 21:11 ID:??? AAS
 >>11 
 でも、読みにくいね 
13: [age] 02/11/01 21:44 ID:??? AAS
 >>12 
  
 読みやすさを追求してるわけじゃないんだけどね 
 趣旨を理解してよ 
14(2): 02/11/01 22:14 ID:??? AAS
 ああ、; までで1行ってわけじゃないんだ。 
15: [ ] 02/11/01 22:27 ID:??? AAS
 やっぱカウンタぐらいしかできないか。 
16: 02/11/01 23:05 ID:??? AAS
 ム板かと思った。 
17: rubyist@カラアゲうまうま [sssss] 02/11/01 23:14 ID:??? AAS
 SWFファイルからJPEGを取り出す 
  
 SWF("$ARGV[0]"); 
 sub SWF{$file="$_[0]";open(FILE,$file); 
 binmode FILE;while(<FILE>){$ed=unpack("h*","$_"); 
 if($ed=~/ff8dff0e.{2}01a46494640010/){$Wri=pack("h*","$ed"); 
 print FILEX "$Wri";$ed=~s/.*(ff8dff0e.{2}01a46494640010)/$1/; 
 $c9++;print "$c9\n";$fileX="SWF$file$c9.jpg";open(FILEX,">$fileX"); 
   binmode FILEX;}$Wri=pack("h*","$ed");print FILEX "$Wri";}} 
18: [ ] 02/11/01 23:58 ID:??? AAS
 >>8の 
 truncate( FILE, tell );  
 これはどういう意味? 
19(1): 02/11/02 00:07 ID:??? AAS
 tell FILE 
    ↑が抜けてるにょ 
20(2): 02/11/02 00:10 ID:??? AAS
 print <<7LINE; 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 ******************************************************************************* 
 7LINE 
21: 02/11/02 00:11 ID:??? AAS
 >>19 
 ( ´,_ゝ`) プッ 
22: 02/11/02 00:19 ID:??? AAS
 (; °▽°)FILEなくもいけた〜〜 
23: 02/11/02 00:51 ID:TEd9xaNd(1)調 AAS
 echo "aho1" 
 echo "aho2" 
 echo "aho3" 
 echo "aho4" 
 echo "aho5" 
 echo "aho6" 
 echo "aho7"
24(1): ( ´∀`)ヮ-ィ 02/11/02 01:25 ID:??? AAS
 掲示板でけた〜〜 
 #!/usr/bin/perl 
 if($ENV{'REQUEST_METHOD'}eq'POST'){read(STDIN,$b,$ENV{'CONTENT_LENGTH'}); 
 foreach(split(/&/,$b)){($c,$d)=split(/=/,$_);$d=~tr/+/ /; 
 $d=~s/%([a-f\d]{2})/pack('H2',$1)/egi;$form{$c}=$d}open(F,'>>z.txt'); 
 print F "$form{y}\n";close F}print"Content-type:text/html\n\n<html> 
 <form action=x.cgi method=post><input type=text name=y><input type=submit> 
 </form><br><br>";open(F,'z.txt');while(<F>){print "$_<br>\n"}print'</html>'; 
25(1): [ ] 02/11/02 01:46 ID:??? AAS
 動きませぬ 
26: 25 [ ] 02/11/02 01:49 ID:??? AAS
 あ、動きましたw 
27: 02/11/02 02:08 ID:??? AAS
 >>1 Perl限定かよ。 
28: 02/11/02 06:30 ID:??? AAS
 昔のBASICの1画面プログラムを思い出したよ 
29: 02/11/02 14:13 ID:1/HvBlpx(1)調 AAS
 Dukeまだ〜? チンチン 
30(2): 02/11/02 17:48 ID:Sny9GkFS(1)調 AAS
 てめーら七行もあるのにその程度のモンしか作れねーのかよ(プ 
31: 02/11/02 17:53 ID:??? AAS
 >>30 
 だからきみのすごい作品を待っています。ハイレベル期待しています。 
 もうできてる? 今からつくる? 今日中には書き込んでくれ。 
32: 02/11/02 20:55 ID:RJf4RKlR(1)調 AAS
 すごい作品まだ〜? チンチン
33(1): 02/11/02 21:13 ID:aPBbHnBW(1)調 AAS
 何本気になってんの? 
34: 末吉亮介 02/11/02 21:15 ID:MUhjalxS(1)調 AAS
        http://plaza.rakuten.co.jp/a240a/
35: 02/11/02 22:13 ID:??? AAS
 >>33 
 作れないヤツはすっこんでてね(はぁと 
36: 02/11/03 00:25 ID:??? AAS
 >>30は、口だけ大将だったということか・・・ 
37: 02/11/03 10:09 ID:??? AAS
 実際、Perlだったらかなりのものが出来てもおかしくはないかと。 
 ム板の7行スレは凄かった。 
38: [age] 02/11/03 14:13 ID:??? AAS
 ム板マ板で相手にされない厨が集まる板はここですか? 
39: ユカリ 02/11/03 14:35 ID:8kfSttUc(1)調 AAS
プランテック製の「 RX-2000? 」を改造済み 
 にした、アイティーエス製の「 RX-2000? 」↓ 
 http://user.auctions.yahoo.co.jp/jp/user/neo_uuronntya#.2ch.net/ 
  
 現在、本当に人気がある様です。 
 私も、この前、買いました。 
  
 関連ホームページ↓ 
 http://www.h5.dion.ne.jp/~gekitoku/ 
 http://www.h4.dion.ne.jp/~gekiyasu/ 
 http://www.h5.dion.ne.jp/~gekirea/ 
 http://www.h4.dion.ne.jp/~shinsetu/ 
40(2): 02/11/03 14:48 ID:??? AAS
 WebProg らしく。 
  
 --- cgi-lib.po --- 
 my($m,$l,$i,$e,$x)=@ENV{'REQUEST_METHOD','CONTENT_LENGTH'};my$d=sub{$d= 
 "Request to receive too much data: $l bytes\n";print"Content-Type: text/plain", 
 "\n\n$d";die$d};sub ReadParse{$l>$$x?&$d:$m=~/POST/?($e=$l-read STDIN,$i,$l):( 
 $i=$ENV{QUERY_STRING});local*I=pop;my@i=(split(/[&;]/,$i),($m?():@ARGV));for(@i 
 ){tr/+/ /;s/%([\da-f]{2})/pack'H2',$1/egi for my($k,$v)=split/=/,$_,2;$I{$k}.= 
 $I{$k}?"\0$v":$v}!$e&&scalar@i}${$x='cgi_lib::maxdata'}=131072 
 --------------- 
  
 cgi-lib.pl 互換。Perl4 不可、multipart 未対応。 
  
 require 'cgi-lib.po'; 
 $cgi_lib::maxdata = 1024; # POST 時の上限サイズ 
 ReadParse(*in); # or ReadParse(\%in); 
41(1):  ◆FruitsMIpE  02/11/03 18:15 ID:??? AAS
 名前入力欄つき掲示板 
  
 $q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split  
 "="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;} 
 open W, ">> b.log"; print W "$i{n}<>$i{m}\n"; close W;} print "Content-type: 
 text/html\n\n<html>\n<head><title>掲示板</title></head>\n<body>\n"; open R,  
 "b.log"; while(<R>){chomp; ($n,$m)=split "<>"; print "$n:$m<br>\n";} close R; 
 print qq{<hr>\n<form>Name<input type="text" name="n"> <input type="text" 
 name="m" size="64"><input type="submit"></form>\n<hr>\n</body></html>\n}; exit; 
42(1):  ◆FruitsMIpE  02/11/03 18:27 ID:??? AAS
 改良 
  
 $q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split  
 "="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;} 
 open W, ">> b.log"; print W "$i{n}:$i{m}\n"; close W;} print "Content-type: 
 text/html\n\n<html>\n<title>BBS</title>\n\n"; open R, "b.log"; while(<R>) 
 {chomp; print "$_<br>\n";} close R; print qq{<hr>\n<form>Name<input type="text" 
 name="n"> <input type="text" name="m" size="64"> <input type="submit"> [<a 
 href="b.cgi">Reload</a>] [<a href="../../">Back</a>]</form>\n<hr>\n</html>\n}; 
43(3): 02/11/03 18:38 ID:??? AAS
 >>24 を発展させてみた。一行掲示板。 
  
 --- 7bbs.cgi --- 
 #!/usr/local/bin/perl 
 $l='7bbs.log';if(read STDIN,$_,$ENV{'CONTENT_LENGTH'}){for(split/&/){$_=(split 
 /=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;push@r,$_}@r=(''.localtime,@r); 
 open F,"+<$l";flock F,2;@l=(join(': ',@r),"<br>\n",<F>);truncate F,0;print F 
 @l[0..49]}open F,$l;print join('><input type=',"Content-type: text/html\n\n". 
 '<title></title><form action=7bbs.cgi method=post','text name=n','text name=w', 
 'submit></form>'),<F> 
 ---------------- 
  
 新しい順に表示。50件まで保存。 
  
 >>41 
 ネタが被るねぇ。ゴメンね。(´・ω・`) 
44(2): 02/11/03 19:17 ID:??? AAS
 動かねぇです大将!>>42>>43 
 >>42のは半角でも全角でも変な文字が保存されるです!モジコード変えてもダメだったです! 
 >>43のはファイルが作成されませぬ! 
 私のミステイクでしょうか!ハラキリ! 
45: 02/11/03 19:22 ID:??? AAS
 >>44 
 open F,"+<$l"; ←注目 
 つー事で、ログファイルは先に作っといて。 
 $l='7bbs.log'; 
 のトコがログファイルのパスだから、よろ。 
46(2): [require使えば] 02/11/03 19:44 ID:??? AAS
 1行でも書けるな。 
47: 02/11/03 20:07 ID:??? AAS
    (  そんな事より1さん、ちょっと聞いてよ。スレとあんまり関係ないけどさ。 
     `ー‐―V――――――――――――――――――――――――――――― 
            ;:'´ (  このあいだ、WebProg板へ行ったんですの。WebProg板。 
         _....._{{ 〃 \  そしたらなんかRuby!と書かれたレスが多発していましたわ。 
       , - ' ,..、、.ヾ{{フ'⌒`ヽ、ー―――V―――――――――――――――――― 
     /  ,:', -‐‐` ´ '´⌒ヽ ヾ:、   _....、、、、   ( で、よく見たらrubyistという名前の書き込みで、 
 .   ,'   ,'´ ,ィ ,ィ ,' ,   `ヽ',  ',-<´ ,     `ヽ.`ー――――V― 相手してもらえてないんです。 
     ,'   .i  /|. /.| { i,  i,  }.  }_,,)) lニ二二ミヽ.、 ':, ,.: '´ ,_.....__`ヽ、    ,..-‐-、),.....`_―――――― 
    ! |  ! .,'-.{ ! !|; |`、.}゙!.! |.  ! ヽ.l ./ ,!  ,,`ヾ:、 ':,  ./'´ ̄`ヾ、、ヽ,.:'´ ,:‐:、 ,.-、 ヽ. 
    ', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! |   ゙レ__,〃_/リ  !.'; .} ./l_|___ノ! l `、 ',  / //`''} }.'; ', 
     ヽ、', l:!Kノ}.     f:_.)i゙i: リ ! l ル' ̄`` ´-、,ノノ l l .!,;:=、`:.`:>=、.j,} |__人(( _ノノノ  | 
      | l!iヾ- ' ,   .!__:ノ ゙ ,リ l リ'´ .|' ̄ヽ   __ `><ノ | {;:'ノ ノtrテ;、.Y ! ,--、   __`彡 ノ 
 .     ',|!!、    r‐┐   ` ノ' /,イ  !   __ , ⌒'/!| |  !.`ー‐'´, ゙じ' ノ ! h.   ._: ´ ソ).( 
       'i!゙、ヽ、 ゙ー'  _, ィ,:',:''´ !  !、  ー'  ノイ ! | | !、  !フ `フ'リ ! ル'ヽ.._ _..、(ン ノ ) 
       ゙:、ィ、jヾー::: 'iヘ ノ',リ./! .| |ー`┬、' ´ 〃 l. トヾ、.゙`ィ'' ´ヽ、/// \二|`\ー‐‐'´ 
    ,、- '´ ヽ、゙、   { `>"、  !  ! !   | `>-、 | |、  ________∧_____ 
   /\\    ',   }   //`ヽ|  ',.!゙、 !// ゙!/  !  (  もうね、アホかと。馬鹿かと‥
48(1): 02/11/03 21:17 ID:QK0oCR94(1)調 AAS
 明文化 
  
 ・7行×79文字 
 ・Perl 
 ・#!/usr/local/bin/perlは含まない。実質的なプログラムで七行。 
 ・スペースも1文字分。2バイト文字は2文字分。 
  
 でいいでしょうか? 
49: rubyist@カラアゲうまうま 02/11/03 21:21 ID:??? AAS
 perl版cc1だれか作れ 
50: 02/11/03 22:32 ID:??? AAS
 このスレを見たとき、 
 ム板かと思いますた。 
51(1): 02/11/03 22:34 ID:??? AAS
 掲示板は本家でもうかなり短くなってないか? 
  
 別に委員だけど、もっと面白いネタがないかなと。 
52: 43 02/11/03 23:08 ID:??? AAS
 >>48 
 プログラムが Web 関連物なら言語は何でもいいんじゃ? 
 シェバング行は C の #include みたいなモンだから…。 
  
 >>51 
 単に縮めるだけじゃなく、7行をギリギリまで使って機能増やすのも 
 楽しみの一つだよ。掲示板に食傷気味なのは同意するけど。(w 
  
 つー事で改良。 
  
 --- 7bbs.cgi --- 
 #!/usr/local/bin/perl 
 $l='7bbs.log';if(read STDIN,$_,$ENV{CONTENT_LENGTH}){@r=''.localtime;for(split 
 /&/){$_=(split/=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;s/(["&<>])/'?'. 
 unpack('C',$1).';'/eg;push@r,$_}open F,"+<$l";flock F,2;@l=(join(': ',@r). 
 "<br>\n",<F>);truncate F,0;seek F,0,0;print F @l[0..49]}open F,$l;print join( 
 '><input type=',"Content-type: text/html\n\n<title>7BBS</title><form action=". 
 '7bbs.cgi method=post','text name=n','text name=w',"submit></form>\n"),<F> 
 ---------------- 
  
 ["&<>] を数値文字参照に変換。 
53(1): 02/11/03 23:18 ID:??? AAS
 7行のスレッドフロート型掲示板とかは無理? 
54:  ◆FruitsMIpE  02/11/03 23:44 ID:??? AAS
 >>43 
 Winではflock 使えなくてエラーに ヽ(*`Д´)ノ ワァァン 
  
 >>44 
 ガ━━━━(;゚Д゚)━━━━ン !! 
 すいませn原因わかりませn 
 Windows環境でSJISならうまくいくんだけど・・ 
  
 >>53 
 前に2ch型掲示板作ってみたけど、無理確定のような気がする。 
 誰か作れる人、いるかな 
55(1): 02/11/04 06:56 ID:5+umhhBG(1)調 AAS
 7行2ch型掲示板 
 ただし、かちゅ〜しゃがないとだめぽ、 
 read.cgiがないから読めないし、書きこみフォームもないから、あとsubject.txtの新スレは一番下になる。 
 flockもしていない、かちゅに依存するために変数名が長い。 
  
 下記のディレクトリ構成で成功 
 /test 
   +--/bbs.cgi 
   +--/subject.txt 
   +--/dat/ 
  
 #!/usr/local/bin/perl 
 $t=time;read(STDIN,$b,$ENV{'CONTENT_LENGTH'});@p=split(/&/,$b);foreach (@p) 
 {($a,$v)=split "=";$v=~tr/+/ /;$v=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; 
 $i{$a}=$v;}if(!$i{'key'}){$i{'key'}=$t;}open(F,">>./dat/$i{'key'}.dat"); 
 print F "$i{'FROM'}<>$i{'mail'}<>$t<>$i{'MESSAGE'}<>$i{'subject'}\n";close(F); 
 open(S,">>./subject.txt");print S "$i{'key'}.dat<>$i{'subject'}(1)\n"; 
 close(S);exit; 
  
 つーか激しく2ch型から離れているが。 
56: 02/11/04 09:38 ID:??? AAS
 >>55 
 それは普通掲示板といいません(w 
 win鯖では動いたけどな。 
57(1): 02/11/04 12:16 ID:??? AAS
 やはりCGIだと、定型的な部分で多く取られてしまいますな。 
58(1): ( ´∀`)でけた〜 02/11/04 12:59 ID:??? AAS
 [アクセス解析] 
 CGI名: a.cgi 
 空ファイル用意: log 
 そのままアクセスしてログ取り 
 引数に a をつけて解析結果表示 
  
 #!/usr/bin/perl 
 &a if $ENV{QUERY_STRING}eq'a';($s,$m,$j,$d,$g,$y)=gmtime(time+9*60*60);$i=$ENV{ 
 REMOTE_ADDR};$h=$ENV{REMOTE_HOST}||gethostbyaddr(pack('C4',split(/\./,$i)),2)|| 
 $i;$y=sprintf("%d/%02d/%02d/ %02d:%02d:%02d",$y+=1900,++$g,$d,$j,$m,$s);open(F, 
 '+<log');@d=<F>;unshift(@d,"$y,$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n"); 
 seek(F,0,0);print F @d;sub a{print"Content-type:text/html\n\n";open(F,'log'); 
 while(<F>){($t,$h,$u,$r)=split(/,/,$_);print"$t<br>$h<br>$u<br>$r<hr>"}exit} 
59: 02/11/04 14:26 ID:??? AAS
 で、実用性ある奴はあるのか? 
60(2): 02/11/04 15:47 ID:CMvXGJGy(1)調 AAS
 (・ε・)v キニシナイ! 
61: 02/11/04 20:59 ID:??? AAS
 HTML4.01strictとかどうよw 
62: 02/11/04 23:14 ID:??? AAS
 >>57 
 試しにHTMLを分離して作ってみたら大分縮んだ。 
 http://boobar.hp.infoseek.co.jp/7bbs2/7bbs2_0.0.1.tar.gz 
  
 >>58 
 縮めてみた。 
  
 #!/usr/bin/perl 
 if($ENV{QUERY_STRING}eq'a'){open F,'log';print"Content-Type: text/html\n\n",map 
 join('<br>',split/,/).'<hr>',<F>;exit}$i=$ENV{REMOTE_ADDR};$h=$ENV{REMOTE_HOST} 
 ||gethostbyaddr(pack('C4',split/\./,$i),2)||$i;($s,$m,$j,$d,$g,$y)=localtime; 
 open F,'+<log';eval{flock F,2};@d=(sprintf('%d/%02d/%02d %02d:%02d:%02d',1900+ 
 $y,$g+1,$d,$j,$m,$s).",$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n",<F>); 
 truncate F,0;seek F,0,0;print F @d 
63: age [age] 02/11/05 18:48 ID:??? AAS
 age 
64: 02/11/14 07:16 ID:M/ZRCXHw(1)調 AAS
 あげ 
65: 02/11/20 18:28 ID:707UhyRv(1)調 AAS
 7行Wikiくれ。 
66(1): 02/11/21 07:14 ID:??? AAS
 ---- 7wiki.cgi 
 #!/usr/local/bin/perl -w 
 use strict; use CGI qw/:standard/; use AnyDBM_File; use Fcntl; 
 my$id=$ENV{'QUERY_STRING'}||'FrontPage';my$msg=param('msg')||''; 
 my$url='./7wiki.cgi'; tie(my%DB,'AnyDBM_File','wiki',O_CREAT|O_RDWR,0666)or die; 
 if ($msg){$DB{$id}=$msg} $msg=escapeHTML $DB{$id}; untie(%DB);print header; 
 print qq(<form action="$url?$id" method="POST"><input type="submit"><b>$id</b> 
 <br /><textarea name="msg" rows="6" cols="60">$msg</textarea></form><hr />); 
 $msg=~s/\b([A-Z][a-z]+([A-Z][a-z]+)+)\b/<a href="$url?$1">$1<\/a>/g;print $msg;
67(1): 02/11/21 19:40 ID:??? AAS
 >>66 
  
 #!/usr/local/bin/perl -w 
 use strict;use CGI':standard';use AnyDBM_File;use Fcntl;tie(my%D,'AnyDBM_File', 
 '7wiki',O_CREAT|O_RDWR,0666)||die;my$i=$ENV{QUERY_STRING}||'FrontPage';$_= 
 escapeHTML($D{$i}=param('m')||$D{$i});untie%D;print header(),qq(<form 
 action="7wiki.cgi?$i" method="post"><input type="submit" /><b>$i</b><br /> 
 <textarea name="m" rows="6" cols="60">$_</textarea></form><hr />); 
 s|\b([A-Z][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g;print 
  
 \b 要る? 
68: 02/11/21 22:28 ID:mGPCTII6(1)調 AAS
 >>67 
 thx ...  
  
 WikiName の正規表現は \b([A-Z][a-z]+){2,}\b って書けるみたいだね。 
 \b 要るかどうかしらないけど、個人的には欲しい。 
 # http://c2.com/cgi/wiki?LinkPattern 
  
 > s|\b([A-Z][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g; 
 < s|\b([A-Z][a-z]+){2,}\b|a "7wiki.cgi?$1",$1|ge; 
  
 多少、汚くても良いのなら、 
 - use Fcntl やめて O_CREAT|O_RDWR は定数で 
 - s/standard/all/; tr/"//d; s/AnyDBM/DBM/g; s' /''g; 
 - s/use strict;/; s/\bmy\b/g; 
 - etc .. 
 ・・・で、4〜5行くらいにはダイエット出来るかな。 
  
 短いwiki・・・他に、こんなのもあるよ。 
 http://c2.com/cgi/wiki?ShortestWikiContest 
69: 02/11/21 22:40 ID:??? AAS
 間違えた・・ 
 s|\b([A-Z][a-z]+){2,}\b|a{href=>"7wiki.cgi?$1"},$1|ge; 
70(2): 02/11/21 22:52 ID:??? AAS
 括弧わすれてた・・・ゴメン(再び修正 
  \b(([A-Z][a-z]+){2,})\b
71(1): 02/11/22 07:28 ID:??? AAS
 use CGI':all';use SDBM_File;$i='7wiki.cgi';$j=$ENV{QUERY_STRING}||'FrontPage'; 
 tie%D,'SDBM_File',$i,258,438or die;$_=$D{$j}=param('m')||$D{$j};untie%D;put 
 header,startform('post',"$i?$j"),submit,b($j),br,textarea('m',$_,6,60),endform 
 ,hr;$_=escapeHTML$_;s|\b(([A-Z][a-z]+){2,})\b|a{href=>"$i?$1"},$1|ge;put$_ 
72: 02/11/22 14:36 ID:??? AAS
 Good job. 
73: 02/11/22 18:30 ID:??? AAS
 折角なので副産物も(ワンライナーだけど 
 れぎゅれーしょん ちぇっか usage: ./7rc.pl < target_script.pl 
  
 #! perl -nw 
 chomp;length>79||$.>7?die:print"line $. OK\n"
74(1): 02/11/24 15:39 ID:??? AAS
 >>71 
 use Fcntl; 
 はいらないのか? 
75(1): 02/11/24 17:47 ID:??? AAS
 use Fcntl; O_CREAT|O_RDWR を纏めて 286(tie の引数 
  
 定数部分は環境依存するかも知れないので 
 /usr/include/sys/fcntl.h を参照
76: 02/11/25 00:58 ID:??? AAS
 DB_File なら use した時点で O_CREAT も O_RDWR も使えるようになる罠。 
  
 use DB_File; 
 print join '/', O_CREAT => O_CREAT, O_RDWR => O_RDWR; 
  
 そして O_CREAT は実際 512 だったり 256 だったりする罠。 
77: 02/11/25 06:28 ID:??? AAS
 余った行で僅かばかり実用的にしてみる。 
  
 #!/usr/local/bin/perl -w 
 use CGI qw(:all escapeHTML);use DB_File;$j=$ENV{QUERY_STRING}||'FrontPage';($f) 
 =$0=~m|([^/]+)(\.cgi)$|;open(L,'+<&='.($d=tie%D,'DB_File',$f,O_CREAT|O_RDWR or 
 die)->fd)||die;eval{flock L,2};$_=escapeHTML($m=$D{$j}=param('m')||$D{$j});$d-> 
 sync;$d=untie%D;s/\b(([A-Z][a-z]+){2,})/a{href=>"$f.cgi?$1"},$1/ge;s/\x0d\x0a| 
 \x0d|\x0a/<br>/gx;put header,title("$f - $j"),startform('post',"$f.cgi?$j"), 
 submit,b($j),br,textarea('m',$m,6,60),endform,hr,$_ 
  
 陽に輸入してやらないと上のタイミングで escapeHTML 使えなかったよ。 
 (FreeBSD 4.7R, Perl 5.005_03, CGI.pm 2.89) 
78(1): 02/11/25 23:38 ID:??? AAS
 #! perl 
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING}||'FrontPage') 
 =~/$w/;$f='7wiki.cgi';$o=-f$p?'<':'>';open F,"+$o$p"or die;eval{flock F,2};read 
 F,$m,-s$p;$_=escapeHTML($m=param('m')||$m);seek F,0,0;print F $m;close F;$_.=hr 
 .ul map{li"".localtime time-86400*-M," $_"}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" 
 ;s/$w/a{href=>"$f?$1"},$1/ge;put header,start_html($p),h1($p),startform('post', 
 "$f?$p"),textarea('m',$m,6,60),br,submit,endform,hr,pre($_),end_html 
  
 一覧を付けてみた・・・(残り:1行と10字 
  
 :all tag で全部輸入できなかった?:html2 とかでも無理かな? 
79(1): 02/11/26 00:26 ID:??? AAS
 < $_=escapeHTML($m=param('m')||$m);seek F,0,0;print F $m; 
 > $_=escapeHTML $m=param('m')||$m;seek F,0,0;print F$m; 
80(2): 02/11/26 00:30 ID:??? AAS
 < .ul map{li"".localtime time-86400*-M," $_"}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" 
 > .ul map{li"".localtime time-86400*-M,$_}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" 
81: 74 02/11/26 00:51 ID:??? AAS
 >>75 
 勉強になりました。 
82: 02/11/26 01:21 ID:??? AAS
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING}||FrontPage)=~ 
 /$w/;$f=script_name;open(F,'+'.(-f$p?'<':'>').$p)||die;eval{flock F,2};read F,$ 
 m,-s$p;$_=escapeHTML$m=param(z)||$m;seek F,0,0;print F$m;close F;$_.=hr.ul map{ 
 li"".localtime time-86400*-M,$_}sort{-M$a<=>-M$b}grep{/$w$/}glob'*';s/$w/a{href 
 =>"$f?$1"},$1/ge;put header,start_html($p),h1($p),startform(0,"$f?$p"),textarea 
 (z,$m,6,60),br,submit,endform,hr,pre($_),end_html 
83: 02/11/26 04:49 ID:??? AAS
 >>78 
 ごめん、CGI.pm 2.89 置いたパスを use lib し忘れたままテストしてた。 
 5.005_03 同梱のは 2.46 で、この辺だと escapeHTML はどのタグにも 
 含まれてない。submit() を呼んだ時点で main に定義されるのかな。 
  
 #! perl 
 use CGI':all';$f=script_name;$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING 
 }||FrontPage)=~/$w/;open(F,-f$p?"+<$p":"+>$p")||die;eval{flock F,2};$/=();$_= 
 escapeHTML$m=param(z)||<F>;truncate F,0;seek F,0,0;print F$m;close F;$_=join hr 
 ,endform,pre($_),ul map{li localtime((stat$_)[9])." $_"}sort{-M$a<=>-M$b}grep 
 /$w$/,<*>;s/$w/a{href=>"$f?$1"},$1/eg;put header,start_html($p),startform(0, 
 "$f?$p"),h1($p),textarea(z,$m,6,60),br,submit,$_,end_html 
  
 1 byte 長くなった。むぅ。 
84(1): 02/11/26 06:11 ID:??? AAS
 書き忘れたけど、78-82 はWin/ActivePerlで作ってました。 
 他の環境に移したら CGI.pm 2.56 で同様のエラーが出たので 
 パッケージ名をつけてCGI::escapeHTMLで対応。 
 もしくは、モジュールを新しくする。でいいかな>対策 
  
 NOTE 
 QUERY_STRING を PATH_INFO に変更して 
 url の区切りを ? -> / に。 
 # 勿論、 s/// のスラッシュも他の記号に変更する。 
  
 (stat)[9] 
BUG 
 ページ読むだけでも書き込みしてるので 
 タイムスタンプが。。
85: 02/11/26 22:06 ID:??? AAS
 >>84 
 パッケージ名付けた方が優しいかな。> escapeHTML 
  
 タイムスタンプのバグフィクス版。以下の環境で動作。 
 ・Perl 5.005_03, CGI.pm 2.46 
 ・Win98SE, AN-HTTPD 1.41g 
 ・FreeBSD 4.7R, Apache/1.3.27 
  
 #!/usr/local/bin/perl 
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{PATH_INFO}||FrontPage)=~/$w 
 /x;if(open F,($m=param z)?">$p":$p){eval{flock F,2};$/=();$_=CGI::escapeHTML($m 
 ||=<F>);truncate F,0;seek F,0,0;print F$m;close F}opendir D,'./';$_=join hr, 
 endform,pre($_),ul map{li localtime((stat)[9])." $_"}sort{-M$a<=>-M$b}grep/$w$/ 
 ,readdir D;$f=script_name;s|$w|a{href=>"$f/$1"},$1|eg;put header,start_html($p) 
 ,startform(0,"$f/$p"),h1($p),textarea(z,$m,6,60),br,submit,$_,end_html 
  
 AN-HTTPD だとグロブ効かなかったので readdir に変更。 
 i-httpd だと PATH_INFO 使えなかったけど、まぁこれは 
 少数派という事で。あともしかしたら MacPerl が truncate 
 で引っかかるやも。 
86(1): 02/11/27 00:19 ID:??? AAS
 CGI.pm 2.752, perl 5.005_03 build for sun4-solaris Apache 1.3.27 
  
 #! perl -w 
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';$f=script_name;$/=();($p)=(path_info|| 
 FrontPage)=~/$w/;opendir D,'.';if(open F,($m=param z)?">$p":$p){eval{flock F,2} 
 ;$_=CGI::escapeHTML$m||=<F>;eval{truncate F,0};seek F,0,0;print F$m;close F}$_. 
 =hr.ul((map{li"".localtime((stat)[9]),$_}sort{-M$a<=>-M$b}grep/$w$/,readdir D)[ 
 0..9]);s|$w|a{href=>"$f/$1"},$1|eg;put header,start_html$p),h1($p),startform(0 
 ,"$f/$p"),textarea(z,$m,6,60),br,submit,endform,pre($_),end_html 
  
 一覧の表示数制限機能追加。 
 truncate は eval で対応できるかな?>MacPerl
87: 02/11/27 01:56 ID:??? AAS
 #! perl -w 
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';$/=();($p)=(path_info||FrontPage)=~/$w 
 /x;$f=script_name."/";opendir D,'.';if(open F,($m=param z)?">$p":$p){eval{flock 
 F,2};$_=CGI::escapeHTML$m||=<F>;eval{truncate F,0};seek F,0,0;print F$m;close F 
 }$_.=hr.ul((map{li"".localtime((stat)[9]),$_}sort{-M$a<=>-M$b}grep/$w$/,readdir 
 D)[0..14]);s|$w|a{href=>$f.$1},$1|eg;put header,start_html($p),h1($p),startform 
 (0,$f.$p),textarea(z,$m,6,60),br,submit,endform,pre($_),end_html 
  
 -1byte 
88(1): 02/11/27 06:40 ID:??? AAS
 #! perl -w 
 use CGI':all';@c=qw/white eeeeff/;$d=0;$e=path_info();$f=script_name;*p=*param; 
 $h=DELETE;$i=RENAME;$j=COPY;$k=FILES;opendir D,"./$e";if(p$h){unlink p$k}put 
 header,start_html('7files'),startform(0,$t),table(Tr([th({bgcolor=>ddddff},['', 
 qw/Name Size LastModified/]),(map{td({bgcolor=>$c[$d++%2]},[checkbox($k,0,$_,'' 
 ),g($_)." ".a({href=>"$f/$_"},$_),-s,"".localtime((stat)[9])])}sort{$a cmp $b} 
 grep/^[^.]/,readdir D)])),(map{submit$_}($i,$j,$h)),endform,end_html;sub g{$t= 
 -d$_[0]?'folder':'text';img{src=>"/icons/$t.gif",alt=>$t}} 
  
 ファイル削除 CgI あぱっち用  
 RENAME と COPY は未実装。もうちょっと痩せないとなぁ・・ 
WikiName のリンク処理(存在しないページのリンクは?に。 
 s|$w|(-f$1?'':$1).a{href=>$f.$1},-f$1?$1:'?'|eg; 
89(1): 02/11/27 08:37 ID:??? AAS
 検索エンジン 
  
 <? fopen("http://www.yahoo.co.jp");?> 
90(2): 02/11/27 09:55 ID:??? AAS
 >>89 
 Warning: fopen() expects at least 2 parameters, 1 given in ...
91: 02/11/27 20:42 ID:??? AAS
 7wiki.cgi 、一旦まとめ。(w 
  
 #! perl 
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=(path_info||FrontPage)=~/$w/;$/=( 
 );$f=script_name."/";opendir D,".";if(open F,($m=param z)?">$p":$p){eval{flock 
 F,2};$_=CGI::escapeHTML($m||=<F>);eval{truncate F,0};seek F,0,0;print F$m;close 
 F}$_=pre($_).hr.ul map{li"".localtime((stat)[9]),$_}sort{-M$a<=>-M$b}grep/$w$/, 
 readdir D;s|$w|(!-f$1&&$1).a{href,$f.$1},-f$1?$1:"?"|eg;put header,start_html( 
 $p),h1($p),startform(0,$f.$p),textarea(z,$m,6,60),br,submit,endform,$_,end_html 
  
 ・bare word が存在するので perl -w は不可。 
 ・古い CGI.pm は escapeHTML を輸出しないので括弧が必要。 
92(2): 02/11/28 03:13 ID:??? AAS
 use CGI':all';$w='\b(([A-Z][a-z]+){2,})';$f=script_name."/";opendir D,".";$/=() 
 ;($p)=(path_info||FrontPage)=~/$w/;if(open F,($m=param z)?">$p":$p){eval{flock 
 F,2};$_=submit.endform.hr.pre CGI::escapeHTML($m||=<F>);eval{truncate F,0};seek 
 F,0,0;print F$m;close F}$_=br.$_.hr.ul map{li"".localtime((stat)[9]),$_}sort{-M 
 $a<=>-M$b}grep/$w$/,readdir D;s|$w|(!-f$1&&$1).a{href,$f.$1},-f$1?$1:"?"|eg;put 
 header,start_html($p),h1($p),startform(0,$f.$p).textarea(z,$m,6,60),$_,end_html 
-w は >>86 の環境では付けないとCGIとして動かなかったんだけど・・ 
 どうしてだろう?z maybe crash って warning 出すのはわかっていたけど 
 ちゃんと動いていたような気がする。(エラーログ今度ちゃんと見て来よう。 
TextRule に Pod::Htmlを使おうとしたが、 
 pod2html はファイルを対象としているため実装を断念。 
 残り一行じゃ TextRuleは辛いかな・・URLのリンクくらいなら追加出来そう・・? 
93(1): 02/11/28 03:23 ID:??? AAS
 あっ バグ・・・今気付いた。 
 open が失敗した時困るかな >>92 
94(1): 02/11/28 05:30 ID:??? AAS
 >>88 
 アイコンと th 無くして、あと目に付いたトコだけザッと。 
  
 #! perl -w 
 use CGI':all';*p=*param;$d=path_info;$t=opendir D,".$d";$F=F;($c=$f=script_name 
 )=~s|/[^/]+$||;$R=REN;$C=CP;$D=DEL;p$D&&unlink p$F;put header,start_html(7files 
 ),startform(0,$f),table(Tr[map{$i="$d/$_";($l,$s)=-d".$i"?($f.$i,'DIR'):($c.$i, 
 -s _);td({bgcolor,(white,eeeeff)[$t++%2]},[checkbox($F,0,$_,''),a({href,$l},$_) 
 ,$s,"".localtime((stat)[9])])}sort grep!/^\./,readdir D]),(map{submit$_}$R,$C, 
 $D),endform,end_html 
95: 02/11/28 05:55 ID:??? AAS
 >>94 修正…。 
  
 use CGI':all';($c=$f=script_name)=~s|/[^/]+$||;$d=path_info;$t=opendir D,".$d"; 
 $F=F;$M=MV;$C=CP;$R=RM;*p=*param;p$D&&unlink p$F;put header,start_html('7files' 
 ),startform(0,$f),table(Tr[map{$i="$d/$_";($l,$s)=-d".$i"?($f.$i,'DIR'):($c.$i, 
 -s _);td({bgcolor,(white,eeeeff)[$t++%2]},[checkbox($F,0,$_,''),a({href,$l},$_) 
 ,$s,"".localtime((stat)[9])])}sort grep!/^\./,readdir D]),(map{submit$_}$M,$C, 
 $R),endform,end_html
96: 02/11/28 06:10 ID:??? AAS
 >>92 
 成る程、そういう環境もありますか。 
 warning 吐きまくるのはヤだなぁと思っただけなんで、 
 shebang line は適宜変更でいいですかのぅ。 
  
 つか valid な HTML にはあまりこだわってませんか。 
  
 URL リンクはこうかな…。 
 s|(http://[\w!#-;=?-@~]+)|a{href,$1},$1|eg; 
  
 >>93 
 困りました。:)
上下前次1-新書関写板覧索設栞歴
あと 356 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s