Perlについての質問箱 34箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/01/11(金) 00:07:22"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 ttp://pc11.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
ttp://www.perl.org/get.html
● 2008/01/11現在の最新版: 5.10.0
● 2007/01/11現在の開発版: 5.9.5
前スレ
Perlについての質問箱 33箱目
http://pc11.2ch.net/test/read.cgi/tech/1192463997/
リンク集は>>2-3
過去スレは>>4 あたり
0002デフォルトの名無しさん
2008/01/11(金) 00:07:47Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/4873111269/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル] (追加)
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perl5.8.xのドキュメント(一部): ttp://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: ttp://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: ttp://www.cpan.jp/search.cgi
perldoc.jp: ttp://www.perldoc.jp/
Perldoc.com: ttp://www.perldoc.com/
0003デフォルトの名無しさん
2008/01/11(金) 00:08:12CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perlの小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8 Unicodeメモ]
ttp://www.pure.ne.jp/~learner/program/Perl_unicode.html
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0004デフォルトの名無しさん
2008/01/11(金) 00:08:280005デフォルトの名無しさん
2008/01/11(金) 00:09:061 ttp://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 ttp://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 ttp://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 ttp://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 ttp://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 ttp://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 ttp://pc2.2ch.net/test/read.cgi/tech/1068051036/
8 ttp://pc2.2ch.net/test/read.cgi/tech/1074151549/
9 ttp://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 ttp://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 ttp://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 ttp://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 ttp://pc8.2ch.net/test/read.cgi/tech/1126977805/
0006デフォルトの名無しさん
2008/01/11(金) 00:09:3820 ttp://pc8.2ch.net/test/read.cgi/tech/1131286411/
21 ttp://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 ttp://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1146022352/
25 ttp://pc8.2ch.net/test/read.cgi/tech/1149259409/
26 ttp://pc8.2ch.net/test/read.cgi/tech/1153412251/
27 ttp://pc8.2ch.net/test/read.cgi/tech/1157874614/
28 ttp://pc8.2ch.net/test/read.cgi/tech/1162273941/
29 ttp://pc11.2ch.net/test/read.cgi/tech/1166708139/
30 ttp://pc11.2ch.net/test/read.cgi/tech/1173880452/
31 ttp://pc11.2ch.net/test/read.cgi/tech/1181500187/
32 ttp://pc11.2ch.net/test/read.cgi/tech/1186995713/
33 ttp://pc11.2ch.net/test/read.cgi/tech/1192463997/
0007デフォルトの名無しさん
2008/01/11(金) 14:30:54リストを集合と見なして、和、積などの演算を提供するモジュールでポピュラーなのあったっけ?
0008デフォルトの名無しさん
2008/01/11(金) 16:28:170009デフォルトの名無しさん
2008/01/12(土) 00:24:18CGI.pm には入ってないので、自前でやるしかない。
で、あってる?
escapeHTML ってのはあるんだけどなぁ。
(= CGI::Lite で言うところの、browser_escape)
0010デフォルトの名無しさん
2008/01/12(土) 02:47:40use URI::Escape
じゃあ、いかんのかね?
0012デフォルトの名無しさん
2008/01/12(土) 22:32:260013デフォルトの名無しさん
2008/01/12(土) 22:46:330014デフォルトの名無しさん
2008/01/12(土) 23:23:55そか? むしろOOってこんなに簡単だったんだ、とオモタが。
[Hoge.pm]
package Hoge;
sub new {
my $class = shift;
return bless({@_}, $class);
}
sub fuga {
my ($self, $world) = @_;
print "$self->{hello}, $world\n";
}
1;
[hoge.pl]
use Hoge;
my $h = new Hoge(hello => "HELLO");
$h->fuga("WORLD");
0015デフォルトの名無しさん
2008/01/12(土) 23:34:11他のOOPLを先にやっちゃった人だと、ちと辛くなる。
何かOOPL自体を実装してる気分になる。
0016デフォルトの名無しさん
2008/01/12(土) 23:57:02病的
0017デフォルトの名無しさん
2008/01/13(日) 02:18:45struct Person => {
name => '$',
son => '@',
doughter => '@'
};
$person[$i] = Cell->new();
$person[$i]->son($j, 'taroh');
$person[$i]->doughter($k, 'hanako');
みたいにたくさんの人がいて、
人によって息子と娘の数は違います。
下の書き方だと表示できません。よろしくお願いします。
for ($i = 0; $i <= $#person; $i++){
print $person[$i]->name;
print ' son: ';
for ($j = 0; $j <= $#{$person[$i]->son($j)}; $j++){ ←この行でダメと怒られる
print $person[$i]->son($j);
}
print ' doughter: ';
for ($j = 0; $j <= $#{$person[$i]->doughter($j)}; $j++){
print $person[$i]->doughter($j);
}
printf "\n";
}
0018デフォルトの名無しさん
2008/01/13(日) 08:24:310019デフォルトの名無しさん
2008/01/13(日) 11:00:49まずは、ソースの頭にこの二行を追加してください。
あとは、ガイダンスに従ってプログラムを修正してください。
use string;
use warning;
002017
2008/01/13(日) 17:18:11↓
for ($j = 0; $j <= $#{$person[$i]->son; $j++){
で解決しました。
use string; を入れると、グローバル変数に文句を言われて、my を使ってみると
$person[$i] がなぜかできなくなるので使ってないです。
~~~
0021デフォルトの名無しさん
2008/01/13(日) 17:53:45ちゃんとしたのを書くときはstrictとwarningプラグマをつけて書くようにしたほうがいいよ。
何かエラーが出るなら、コードにバグなりバグの原因が潜んでるってことだから。
0022デフォルトの名無しさん
2008/01/13(日) 18:33:260023デフォルトの名無しさん
2008/01/13(日) 19:26:24そもそもPerlではforeachにしたほうがいい
strictとwarningsは 必 須
0024デフォルトの名無しさん
2008/01/13(日) 19:35:12002517
2008/01/13(日) 19:47:54すみません。strict と warnings は使うようにします。foreach にもします。
>$person[$i] がなぜかできなくなるので使ってないです。
については、
my $person[$i] = Person->new();
↓
my @person = Person->new();
にしたらローカル変数使えました。どうもありがとうございました。
0026デフォルトの名無しさん
2008/01/13(日) 21:21:490028デフォルトの名無しさん
2008/01/13(日) 22:36:13マイルール押し付けすぎじゃね?
0029デフォルトの名無しさん
2008/01/13(日) 22:38:320030デフォルトの名無しさん
2008/01/13(日) 23:18:12あまり教条主義的になるのもよくない
0031デフォルトの名無しさん
2008/01/13(日) 23:40:27そこそこに大きくなりそうな時は、やっぱCにしようって思わない?
0032デフォルトの名無しさん
2008/01/13(日) 23:41:310033デフォルトの名無しさん
2008/01/14(月) 02:10:03Perlで書かなければならないときはPerlで書くし、
Cで書かなければならない時はCで書く。
0034デフォルトの名無しさん
2008/01/14(月) 03:00:33速さが必要なときは、特定部分だけCにしてる
0035デフォルトの名無しさん
2008/01/14(月) 04:53:03それは分かってて使わないってことだろ?
上のは使うことすら知らなかったわけだから
0036デフォルトの名無しさん
2008/01/14(月) 05:20:230037デフォルトの名無しさん
2008/01/14(月) 11:29:210038デフォルトの名無しさん
2008/01/14(月) 13:22:36PerlとRubyくらいまとめたい。
0039デフォルトの名無しさん
2008/01/14(月) 16:39:51ローカルサーバー上では
$i = rindex($add,"\\");
という入力をすることでうまく行きますが
借りてるサーバに上げる場合は
$i = rindex($add,"/");
と改変しなければ動かないプログラムがありまして、
出来れば、ローカルと借りてるサーバ両方でうまく処理が行くようにしたいのですけど、
いい方法ないでしょうか?
0040デフォルトの名無しさん
2008/01/14(月) 16:56:40\か/に正規化すれば?もしくはシステムが使ってるパスのセパレータを取得してそれを使う
$add =~tr/\\/\//;
$i = rindex($add, "/");
0041デフォルトの名無しさん
2008/01/14(月) 16:58:36なるほど
ありがとうございます
0042デフォルトの名無しさん
2008/01/14(月) 17:31:290043デフォルトの名無しさん
2008/01/14(月) 18:33:59やったこと
・相手のサーバーがダウンしてるのかと数箇所、変更しましたが変わらず
・数個のモジュールを試すが全部、同じエラー
-------------------------------------------
Fetching with LWP:
ftp://*****************
LWP failed with code[500] message[Errno architecture (i386-linux-thread-multi-2.4.21-27.0.2.elsmp) does not match executable architecture (i386-linux-thread-multi-2.6.9-34.elsmp) at /usr/lib/perl5/site_perl/5.8.6/Errno.pm line 11.
Compilation failed in require at /usr/lib/perl5/5.8.6/i386-linux-thread-multi/IO/Socket.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.6/i386-linux-thread-multi/IO/Socket.pm line 17.
Compilation failed in require at /usr/lib/perl5/5.8.6/Net/FTP.pm line 18.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.6/Net/FTP.pm line 18.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.6/LWP/Protocol/ftp.pm line 24.
]
Fetching with Net::FTP:
ftp://*****************
Can't locate object method "new" via package "Net::FTP" at /usr/lib/perl5/5.8.6/CPAN.pm line 2251.
0044デフォルトの名無しさん
2008/01/14(月) 20:27:57> CPANがエラーで動きません。どうすればよいのでしょうか?
エラーを解消する。
0045デフォルトの名無しさん
2008/01/14(月) 22:22:58004643
2008/01/15(火) 08:40:400047デフォルトの名無しさん
2008/01/15(火) 10:17:06004843
2008/01/15(火) 10:24:27cpan>install Net::FTP
でもエラーが出ますし,,,,
0049デフォルトの名無しさん
2008/01/15(火) 10:53:25005043
2008/01/15(火) 12:01:41yum? どこかに解説ありますでしょうか??
0051デフォルトの名無しさん
2008/01/15(火) 13:09:26> Net::FTPがないってことで
> cpan>install Net::FTP
> でもエラーが出ますし,,,,
誰にそんなデタラメ吹き込まれたの?
0052デフォルトの名無しさん
2008/01/15(火) 13:12:14> LWP failed with code[500] message[Errno architecture (i386-linux-thread-multi-2.4.21-27.0.2.elsmp) does not match executable architecture (i386-linux-thread-multi-2.6.9-34.elsmp) at /usr/lib/perl5/site_perl/5.8.6/Errno.pm line 11.
005343
2008/01/15(火) 13:14:31CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Database was generated on Thu, 10 Jan 2008 22:37:46 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz
LWP failed with code[500] message[Errno architecture (i386-linux-thread-multi-2.4.21-27.0.2.elsmp) does not match executable architecture (i386-linux-thread-multi-2.6.9-34.elsmp) at /usr/lib/perl5/site_perl/5.8.6/Errno.pm line 11.
Compilation failed in require at /usr/lib/perl5/5.8.6/i386-linux-thread-multi/IO/Socket.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.6/i386-linux-thread-multi/IO/Socket.pm line 17.
Compilation failed in require at /usr/lib/perl5/5.8.6/Net/FTP.pm line 18.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.6/Net/FTP.pm line 18.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.6/LWP/Protocol/ftp.pm line 24.
]
Fetching with Net::FTP:
ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz
Can't locate object method "new" via package "Net::FTP" at /usr/lib/perl5/5.8.6/CPAN.pm line 2251.
005543
2008/01/15(火) 13:33:54rm -f /usr/lib/perl5/site_perl/5.8.6/Errno.pm
で、削除して成功しました。
よくわかりませんが...下記を参考にしました
ttp://www.nilab.info/zurazure2/000806.html
ttp://cyberlib.enterbrainz.com/1182508727.html
0056デフォルトの名無しさん
2008/01/15(火) 15:56:02引きちぎって捨てました」的解決。
0057デフォルトの名無しさん
2008/01/15(火) 15:59:14お前の環境もお前が使っているLinuxディストリビューションの
パッケージシステムの管理体制も知らんからわからん。
エラーメッセージで示されているファイル群を見れば何が起きているかわかるだろ。
005843
2008/01/15(火) 21:38:15そんなの関係ねぇ!
○∧〃
/ >
< \
0059デフォルトの名無しさん
2008/01/16(水) 02:13:39Foo::Const;というパッケージから
Const以下をMainにExportし
Const::〜 というアクセス方法を提供するにはどのようにしたら良いでしょうか?
0061デフォルトの名無しさん
2008/01/16(水) 18:38:57require 'subroutin1.pl';
require 'subroutin2.pl';
と書くとうまくいきません。
両方とも読み込む方法はないでしょうか?
0062デフォルトの名無しさん
2008/01/16(水) 18:49:16二つのファイルの最後に1;は書いた?
0063デフォルトの名無しさん
2008/01/16(水) 18:58:350064デフォルトの名無しさん
2008/01/17(木) 00:29:250065デフォルトの名無しさん
2008/01/17(木) 01:30:06いい薬はありませんか?
0066デフォルトの名無しさん
2008/01/17(木) 02:17:45http://life9.2ch.net/utu/
0067デフォルトの名無しさん
2008/01/17(木) 08:35:36取り合えず、下記を使え。
強い味方になるぞ
KCatch.pm/CGI エラーメッセージをブラウザに表示
http://www.kawa.net/works/perl/catch/news.html
0068デフォルトの名無しさん
2008/01/17(木) 19:00:38普通に
use CGI::Carp qw(fatalsToBrowswr);
を書いておけば良いのと違うの?
0069デフォルトの名無しさん
2008/01/17(木) 22:26:42Compress::Zlib::memGunzip()を試しましたが、zipのためかうまくいきませんでした。
(undefが返る)
すみませんが、お知恵を貸してください。
0070デフォルトの名無しさん
2008/01/17(木) 22:45:49007169
2008/01/17(木) 23:06:41Archive::Zipでできますか?
use IO::Uncompress::Unzip qw(unzip $UnzipError) ;
とりあえずこれで解決できそうです。
なぜか2chで聞くと自己解決につながる不思議!
Archive:;Zipもみてみますね。どうもありがとう
0072デフォルトの名無しさん
2008/01/17(木) 23:14:42日本語でおk?
変数に入ってるのは、zipファイルのファイル名 "なんとか.zip" が入ってるの?
それとも、メモリー中で圧縮された状態のデータそのものが入ってるの?
圧縮されたファイルを解凍したいだけなら、
google で 「perl zip 解凍」 を検索すれば参考になるコードがみつかるよ。
007369
2008/01/17(木) 23:19:54ファイル名やファイルハンドルではありません。
0074デフォルトの名無しさん
2008/01/18(金) 10:35:27これ動かないんですがどうすればいいんですか?
0075デフォルトの名無しさん
2008/01/18(金) 13:17:22なぜ動かないのかをつきとめて、そこを動くように修正すると良い。
0076デフォルトの名無しさん
2008/01/18(金) 14:32:22使ったこと無いけどWWW::NicoVideoっつーのがCPANにあるから見てみれば
あとPlaggerにもぷらぎんあるかあr
0077デフォルトの名無しさん
2008/01/18(金) 15:33:05cのヘッダファイルのように変数を一元管理するにはどうしたらいい?
例
##hoge.pl
use strict
$hoge = 'hoge';
print $hoge;
require 'piyo.pl';
print $hoge;
##piyo.pl
$hoge='piyo';
use strictコメントアウト時はhogepiyoだけど
Global symbol "$hoge" requires explicit package name at ./strict.pl line 3.
Global symbol "$hoge" requires explicit package name at ./strict.pl line 4.
Global symbol "$hoge" requires explicit package name at ./strict.pl line 6.
Execution of ./strict.pl aborted due to compilation errors.
と怒られるorz
0078デフォルトの名無しさん
2008/01/18(金) 15:43:02@argv[1] = ( 1 ..5);
なデータがあるんですけど、
@argv[1]のリストの数を調べたいときは、どうするんですかね?
$#argv[1]とすると、syntx errorになります。
0079デフォルトの名無しさん
2008/01/18(金) 16:05:460080デフォルトの名無しさん
2008/01/18(金) 16:19:28> @argv[1] = ( 1 ..5);
これはどういう意味だ?
($argv[1]) = (1 .. 5)
と等価か?
0081デフォルトの名無しさん
2008/01/18(金) 16:33:560082デフォルトの名無しさん
2008/01/18(金) 17:26:00配列を表すらしい@を付ければできるんじゃね?
つーところかと
0083デフォルトの名無しさん
2008/01/18(金) 17:46:320084デフォルトの名無しさん
2008/01/18(金) 18:36:29これをスペースでsplitして2次元配列にしたいのですが、
そのようなことはできませんか?
0085デフォルトの名無しさん
2008/01/18(金) 18:41:25がんばれ
008674
2008/01/18(金) 18:58:10Crypt::SSLeay入れたら動きました
0087デフォルトの名無しさん
2008/01/18(金) 19:24:020089デフォルトの名無しさん
2008/01/18(金) 20:11:10あるけど、初心者はやるな。
0090デフォルトの名無しさん
2008/01/18(金) 20:18:43if ($a =~ m/^(a|b)$/)
if (grep { $a eq $_ } qw(a b))
:
好きなように書け
0091デフォルトの名無しさん
2008/01/18(金) 20:21:360092デフォルトの名無しさん
2008/01/18(金) 20:40:04use strict;
use Benchmark;
timethese(2000000, {
Alternation => sub{ my $x = "abcdefghijk"; my $y = $x =~ /(?:d|e|f)/ },
CharacterClass => sub{ my $x = "abcdefghijk"; my $y = $x =~ /[def]/ },
});
>> Benchmark: timing 2000000 iterations of Alternation, CharacterClass...
>> Alternation: 3 wallclock secs ( 2.45 usr + 0.00 sys = 2.45 CPU) @ 815328.17/s (n=2000000)
>> CharacterClass: 1 wallclock secs ( 1.41 usr + 0.00 sys = 1.41 CPU) @ 1422475.11/s (n=2000000)
0093デフォルトの名無しさん
2008/01/18(金) 22:58:31相反する(しかも管理しづらそうな)ことをする理由は分からないけど、
エラーメッセージの通りパッケージ名を付けるだけで怒られないようにはできる
use strict;
$main::hoge = "hoge";
print $main::hoge;
0094デフォルトの名無しさん
2008/01/19(土) 06:20:50相反するってのは例が悪かったって事で勘弁を。>>77の例でいうと$hogeはhoge.plでは変更しない。
#hoge.pl
use strict;
my($hoge);
$hoge='hoge';
require 'piyo.pl';
print $piyo;
#piyo.pl
$piyo='piyo'
でhoge.plを実行すると
Global symbol "$piyo" requires explicit package name と怒られる。
#piyo.pl
package piyo
を追加して
#hoge.pl
print $piyo::piyo;
とすれば怒られないけど hoge.pl内$piyoですます方法ないのかな?
009577
2008/01/19(土) 14:49:54#hoge.pl
use strict;
our($piyo);
require 'piyo.pl';
print $piyo;
#piyo.pl
$piyo='piyo'
0096デフォルトの名無しさん
2008/01/20(日) 00:08:5313 14
15 16
のように、1行に2つのデータを持ったファイルがあります。
これを、
list[0][0] = 11;
list[0][1] = 12;
list[1][0] = 13;
list[1][1] = 14;
list[2][0] = 15;
list[2][1] = 16;
のように二次元配列にしたいのですが、どのようにすれば良いのでしょうか?
0097デフォルトの名無しさん
2008/01/20(日) 00:30:36push @list, [map int, split] while(<DATA>);
__DATA__
11 12
13 14
15 16
0098デフォルトの名無しさん
2008/01/20(日) 00:44:26ありがとうございます。
コードを説明して頂けませんか?
0099デフォルトの名無しさん
2008/01/20(日) 01:06:20本を読まない。
ネットを検索しない。
誰かが教えてくれるのをじっと待っているだけ。
つねに受身の態勢。
0100デフォルトの名無しさん
2008/01/20(日) 01:09:23ネットは検索しました。
回答を待っています。
受身の人間は質問しません。
0101デフォルトの名無しさん
2008/01/20(日) 01:15:34@aと@bによる二次元の配列@xを作る際に、
for $i (0..$#a){
$x[0][$i] = $a[$i];
}
for $i (0..$#b){
$x[1][$i] = $b[$i];
}
多次元配列 @x の i 行目の配列を一次元の配列 @c に移し変えるのに、
for $j (0..$#{$x[$i]}){
$c[$j] = $x[$i][$j];
}
というコードを書いてるんですが、もっと奇麗な書き方はありませんか?
■ このスレッドは過去ログ倉庫に格納されています