[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 22:14 / Filesize : 220 KB / Number-of Response : 914
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 30箱目



1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 pc8.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 29箱目
pc11.2ch.net/test/read.cgi/tech/1166708139/

リンク集は>>2-3
過去スレは>>4

513 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:34:40 ]
括弧の方にします

普通にパターンマッチをスカラーで評価した時は、
マッチしたかどうかを返すのに対して、
パターンマッチのリストでの評価の代入の評価は、
リストの要素数だから、動作は同じでも意味は違いますよね

514 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:47:23 ]
从*・ 。.・)<SEXよりかはGENDERまたはGENの方がいいかなと思うの

515 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 11:34:00 ]
ふつう、sex。

516 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 11:37:09 ]
>>514
入会申込書とかの該当欄に「週2回」って書いたたちか?

517 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 11:54:30 ]
なにそのゆとりんぐ回答


518 名前:Aransk [2007/05/11(金) 13:09:15 ]
>509
何かこちらが勘違いしていたら、ゴメン。
でも、
my @foo=qw(joe 25 male);
my ($name, $age, $sex) = @foo;
print $name,"\n";
print $age,"\n";
print $sex,"\n";
って普通に出来るけど?


519 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 13:12:30 ]
じゃなくて、マッチングの結果のリストの表現方法のことです

520 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 13:19:37 ]
ここまで回答出て勘違いするってどういうことだよw

521 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:13:50 ]
>>511
木の実の問題だが、next / last を絡めると途端に可読性が低くなる
気がする。next を絡める予定なら普通に

next if $str !~ /name=(.*),age=(.*),sex=(.*)/ ;
my ($name, $age, $sex) = ( $1, $2, $3 );

でいいじゃんと遅レス。




522 名前:デフォルトの名無しさん [2007/05/11(金) 17:41:10 ]
質問です。
Webで拾った以下の数値切り上げ関数を使用しています。
----------------------------------------
$one = ceil(19.1); # $one = 20

sub ceil {
my $var = shift;
my $a = 0;
$a = 1 if($var > 0 and $var != int($var));
return int($var + $a);
}
----------------------------------------

しかし、このceil関数に、(4.4 * 6000)という数値(26400)を引数として計算すると、26401が帰ってきます。
perl -e 'print sprintf("%.50f", (4.4 * 6000));';
を実行すると、
26400.00000000000363797880709171295166015625000000000000
という結果が返ってきました。

これを回避して、期待したとおりの切り上げ結果を返すにはどうすればいいでしょうか?


523 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:54:28 ]
なにを期待してるんだ?
そのceil関数は整数じゃなければ1足すってだけだろ

524 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:56:06 ]
>>522
丸め誤差でググっとけ。

perl -e 'print sprintf("%.50f", int((4.4 * 6000) * 1e6) / 1e6);'

525 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:02:20 ]
丸めには銀行方式が絡むか絡まないかがあるから気をつけろ
銀行の丸めは1桁が偶数のときに小数点以下があれば繰り上げだったっけ?
詳細忘れた

526 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:05:36 ]
銀行は四捨六入で0.5のときは一の位を見て切上げか切捨てを行う。
今回は全く関係ない。

527 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:27:48 ]
まず「期待したとおりの切り上げ結果」ってのがわからんのだが。

528 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:34:21 ]
>>522
> これを回避して、期待したとおりの切り上げ結果を返すにはどうすればいいでしょうか?

そんなどこの馬の骨ともわからないサブルーチンを使わずに、CPANで
Math-RoundとかMath-Round-Varとか拾ってきて見てみる。

実地の科学技術計算で使われている、充分な仕様のものがあるはず。

529 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 19:10:59 ]
付け焼刃的だが
$a = 1 if($var > 0 and $var != int($var));
ここの後半の比較式を
int($var) != int($var+0.9999・・・)
にするとか


530 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:54:42 ]
CPANに落ちてるのも作者が有名人なのを除くと
どこの馬の骨かわからないきがしなくもない



531 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:10:46 ]
>>530
有名な馬の骨もいるから気をつけな。



532 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:20:42 ]
麻雀の丸めは四捨六入

533 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:24:12 ]
>>521
現状はまさにそんな感じなんだけど、
($1, $2, $3) っていちいち書くのがなんか気持ち悪くて
どうせ内部で持ってそうなデータなのに
というのが質問の発端

534 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:25:39 ]
そういえばINT関数って、負の数について、
数直線の右に丸めるか左に丸めるかが
言語によって違うよね

535 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:26:44 ]
それで?

536 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:07:13 ]
あるフォルダ内のファイル(個数や名前は分からない)を一つずつ読んでいくにはどうしたいいでしょうか?

537 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:10:48 ]
ディレクトリを読んで、ファイル名を配列に入れて、
ループで回したら?

538 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:13:24 ]
>>536
use File::Slurp;

してread_dir

539 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:13:51 ]
opendir して、リストに対して readdir するか、readdir を while の中でぶん回して下さい
で、処理後は closedir で後始末を。

サブディレクトリも探したいなら再帰でググればヒントは見つかるかと思います

540 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:16:59 ]
実は glob で>>537の1行めまで片づく要件なのかもしれない。

541 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:25:07 ]
リストに入れないで済むならぶん回した方がいい



542 名前:536 mailto:sage [2007/05/11(金) 23:47:01 ]
皆さんありがとうございました。
readdirをwhileでぶん回す方法でやってみます

543 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:51:52 ]
サブディレクトリまで検索するならFile::Findを使うのが簡単。
Unixのfindを使ったことがあるならfind2perlでPerlのコードを生成できるよ。

File::Find
search.cpan.org/~nwclark/perl-5.8.8/lib/File/Find.pm

544 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 02:54:05 ]
深さのある配列を左から順番に呼んでフラットな配列を作りたいんですが、
よい方法ご存知の方いませんか
@a = ([1,2,3], [4,5,6], [[7,8],[9,0]]);
@b = flatten(@a); # 1,2,3,4,5,6,7,8,9,0

545 名前:デフォルトの名無しさん [2007/05/12(土) 02:58:46 ]
nkfと似たような動作するプログラムってPerlについてなかったっけ?

546 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 03:16:52 ]
>>544
sub flatten(@) { map { ref $_ eq "ARRAY" ? flatten(@$_) : $_ } @_ }

こんなんどうよ。

547 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 03:25:10 ]
回答しようとして>>546とほぼ同じ定義を書いていたが、
うごかなくて悩んでた。

eqじゃなくて==を使っていたぜorz


548 名前:544 mailto:sage [2007/05/12(土) 03:50:18 ]
>>546-547
おお、ありがとうございます。
再帰を使うと意外とすっきり書けるもんですね。
頭が硬直化して思いつきませんでした。
ありがたく使わせていただきます。

549 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 04:16:20 ]
ActivePerlの時は、File::Findは使わずに自前で書いた方がいいよ。
パスのダメ文字が不完全だから、想定外の動作をする。

550 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 04:17:18 ]
×パスのダメ文字が不完全だから
○パスのダメ文字への対応が不完全だから

551 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:20:04 ]
例えば「__LINE__ ってどういう意味だったかな?」とかと思ったとき
それをperldocで調べようとすると、どういう風にコマンド叩けばいい?
そういう調べものにはperldocは向かない?



552 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 03:04:18 ]
podのディレクトリに移動してgrep

553 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:02:01 ]
$perldoc perl
して
Reference Manualのカテゴリーからあたりを見つけられるぐらいには慣れておいても損はないかも

554 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:26:50 ]
my $obj = new Foo::Bar::Baz($arg);
というコードで、クラス名を動的に指定するにはどうしたらいいですか。
$klass = 'Foo::Bar::Baz';
my $obj = eval "new $klass(¥$arg)";
$@ and die($@);
のようにevalを使うしかないのでしょうか。なんかもっとスマートな方法があるような気がします。

555 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:22:37 BE:264938764-PLT(13092)]
newする時にevalしなくてもおk
むしろパッケージが別ファイルならロード時にevalしる

my $class = "Foo::Bar";
eval "require $class;"
die $@ if $@;
$class->new;

イマドキはUNIVERSAL::requireなんでしょうけど

556 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:45:48 ]
普通に、こんなんでいいでしょ。
----
package Foo::Bar::Baz;
sub new{ bless [] }
sub qux{ print "qux!!" }

package main;
eval{
my $klass = "Foo::Bar::Baz";
my $obj = new $klass;
$obj->qux;
};

557 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:49:53 ]
eval EXPR はインジェクションの可能性があるからなるだけ使わんほうがよいね。

558 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:08:29 ]
>>557
この一連のコードで具体的にどうやって?w

559 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:20:02 ]
そりゃサンプルコードなんだから汚染された文字列が紛れ込む分けなかろう

560 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:59:57 ]
やはり妄想で危険を煽っただけか。その妄想を極めればプールに入っただけで受精するとか言い出す外基地になれるよ。

561 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:49:22 ]
もうゴールデンウィークはおわったよ?



562 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 06:21:05 ]
影さん「evalがあればどんなプログラムでも書けるぜ!」

563 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:44:05 ]
文字列eval使わなくてもいいところで使うのはあんまり美しくないと思うけどな。
>>555のも eval { require $class }; のほうが綺麗だと俺は思う。

564 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:48:00 ]
NET::POP3とMIME::Parserを使ってメールの送信元で振り分けて処理をするプログラムを
作りたいんだけど、headのfromってメルアドが入ってなかったりしてどこをみたらいいかわかりません。
送信元メルアドを参照するにはどこをみたらいいんでしょうか?

565 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:44:40 ]
>>564
rfc2822を読め

566 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:07:34 ]
>>563
それを実行したことある?

567 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 10:45:02 ]
>>565
それじゃ何の答えにもなってないだろ馬鹿

>>564
ヘッダに送信元が正しく入っているかは保証されてないから入ってないときは取りようがないよ

568 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:15:16 ]
>>565
これからは全ての質問に「仕様書読め」「解説書読め」で解決していくんですか?

569 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:26:10 ]
Perlの質問じゃなくてメールの仕様に関する質問だからしゃあないのでは。
確かに不親切だけどね・・・


570 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:35:28 ]
>>568
なぜそうしたいの?

571 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:19:50 ]
570は小学校の国語をやり直した方がいいと思うの



572 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:34:27 ]
いま算数やってるの

573 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:38:52 ]
>>565 にレスしてる奴って全部 >>564 の自演だろ。
メールの仕様に関してはスレ違い。

574 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:45:29 ]
おお、帰ってきた。>>565が黄泉の国から帰ってきた。

575 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:22:10 ]
>>573
なんで>>564>>567が自分で回答すんだよw
まあみんなやさしめに行こうよ。

576 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:37:37 ]
英語こわいからヤダヤダ
だからRFCなんか読むのもヤダヤダ

577 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:51:24 ]
もしかして「RFC」という文字列が荒しを板中から集めてる?

578 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:55:46 ]
全然荒れてねえだろwww

579 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:17:56 ]
>>565は、RFCを読んだことがあるのを自慢したいだけ。

580 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:19:50 ]
自慢てwwwゆとり乙www

581 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:52:34 ]
>>575
他人を装って自分を擁護するのって結構あるからな。
別に珍しくもないから、一応そう書いただけ。



582 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:18:06 ]
標準規格の類を挙げると必ず変な流れになるな。

583 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:28:10 ]
めんどくせぇから書きたいように書けよ

584 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:53:54 ]
昼間子供が書き散らしたようだな

585 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:52:22 ]
>>584
やっと起きたか、ひきこもり君


586 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:36:02 ]
どこを読めばわかるよってのも教え方の一つだと思うんだ

587 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:07:36 ]
>>579
RFCを読んだことが自慢になると思っている時点で(ry

>>586
ざっとでも一通り目を通しておかないと他の部分の実装ですぐに詰まってまたスレ違いの質問してくるでしょ。
スタンドアローンアプリなら好きなように実装汁だけど
そもそもネットワークアプリは相互に協調するものなんだから
「とりあえず動いている」「自分だけよければいい」という存在は迷惑だろ。

588 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:17:48 ]
どうせただのメールフィルタなんだからどうだってかまわんだろう

589 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 05:26:48 ]
まぁ、仕様書は基本としても、それを守ってない場合も多々あるわけでw

590 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:24:45 ]
そうそう、RFC読まなくていい言い訳は
探せば結構見つかるよねw

591 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 10:32:13 ]
でもまぁ読むのだるいじゃん。
遠回りすぎるし。
必要だとは思うが。



592 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:12:16 ]
104で電話番号聞いたら電話帳読めって返すようなもんだもんな

593 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:14:50 ]
>>592
違うだろ。携帯販売店にどっかの会社の電話番号を聞くようなもん。
んなもん、104で聞け、つまりスレ違いだ。

594 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:24:53 ]
ここを104番に例えられると認識している人間がいるのも怖ろしいな。


595 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:02:54 ]
交番で道を尋ねたら「地図を見れ」ってのがしっくりくる

596 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:18:25 ]
104や交番は仕事だけど、ここはただの掲示板だ

597 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:58:15 ]
道に迷っている人に通りすがりの人が「地図板はあそこにある」と言ったら、
別の通りすがりの人が食ってかかっているわけか。
「地図の見方を知ってるのを自慢したいだけ!!」と叫びながら。


598 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:44:27 ]
質問させて下さい

[初めてのPerl 3版]という本を読みながら勉強しているのですが、
3章の練習問題をしていて疑問に思いました。
@list = qw/ a b c d /;
print @list . "\n"; #こうすると、リストの個数が表示される。
print @list; #こうすると、リストの内容が表示される。
print @list , "\n"; #こうすると、リストの内容が表示される。

上記のように、3つの記述ほうほうで内容が変わってきます。
私が疑問に思ったのは、どうして"."で連結すると、リストの個数が
表示されるのでしょうか? また、","が急に出てきたのですが、どう
いった意味があるのでしょうか?

すみませんが、宜しくお願いします。



599 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:51:33 ]
>>565が暴れてます

600 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:59:25 ]
義務ってわけじゃないだろうけど質問スレなんだから質問に答えたくない奴は
スルーすればいいだけなんじゃねーの?
それをわざわざ嫌味ったらしく書き込むから多いから荒れるんだよ。
黙ってろよ。


601 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:15:12 ]
>>598

print @list . "\n";
まず、配列(ここでいう@listね)をprintすると配列の中身をすべて出力するのね。
それで↑は、@listと\nをつなげてひとつの文字列としてる。
配列はスカラ参照するとその要素数を返すから、「配列の要素数+改行」というひとつの文字列として出力される。

print @list;
これは上で言ったとおりそのまま配列の中身をぶちまける。

print @list , "\n";
printは出力対象をカンマで区切って複数指定できるのね。
だから、↑の場合は一つ目の例と違って@listと\nは別物として並列に並んでるのね。
print @list;
print "\n";
と同じというわけ。
だから配列の中身+改行となる。



602 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:18:22 ]
>>600
逆だろ。「RFCを読め」という回答があっという間に返ってきたのに、
それを気に入らなかった奴が騒いでいる。わざわざ嫌味ったらしくね。
黙っていればいいのにね。

603 名前:598 mailto:sage [2007/05/16(水) 16:32:22 ]
>>601
スカラーとして参照されたから、要素数を返したんですね。
詳しく説明していただけたおかげで、理解できたと思います。

ありがとうございました。


604 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:36:58 ]
>>601
部外者だが俺も勉強になった。ありがとう。

605 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 17:27:58 ]
>>567>>568が発端になっているわけか。

まあみなさん、不足だと思ったら、攻撃しないで補うということで。

606 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:05:20 ]
ボク今夜寝る時、ママにRFC読んでもらうんだ。

607 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:07:15 ]
フーン

608 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:33:23 ]
⊂二二二( ^ω^)二⊃ フーン

609 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:43:17 ]
まぁ優しい俺が貼ってやるよ
ttp://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
え、みんなこれ全部読んだの??

610 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:48:27 ]
荒らしてるのはいつも質問者
これ、豆知識な

611 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:57:54 ]
そうなの?



612 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 20:17:47 ]
そういえば質問者のフォロー全然ないな

613 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 21:26:11 ]
暴れ杉だろう・・・
業務で使うときでも読まないのかだぜ?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<220KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef