トップページ⇒php
1001コメント362KB

Perlコーディング初心者質問スレ Part 40

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん05/01/27 18:08:42ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0877nobodyさん05/03/04 22:40:30ID:???
>>872-875
Windowsの「メモ帳」がShift_JISにしか対応してないことと、
テキストエディタ上で設定する必要があることに起因しているようですね。
ありがとうございます。
0878nobodyさん05/03/04 23:28:05ID:???
>>867
http://www.perldoc.com/perl5.8.0/pod/func/dbmopen.html
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perltie.html
http://www.att.or.jp/perl/man/anydbmfile.3pm.html
0879nobodyさん05/03/05 00:07:20ID:???
>>876
言葉足りなすぎ
0880nobodyさん05/03/05 00:22:28ID:???
>>866
globの半角スペースは、OS依存でなくglobの仕様

glob '/usr/*/*/* /bin/* /etc/*/*';

という記述もできるようになっている。
半角スペースをファイル名の一部とみなしてほしい場合は
半角スペースの直前にバックスラッシュ(円マーク)を記述して
エスケープすればよい。
0881nobodyさん05/03/05 02:58:35ID:hbhM7+40
>>876

まずグーグルの使い方を覚えようね。

http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E6%94%B9%E8%A1%8C%20%E5%A4%89%E6%8F%9B+textarea&num=50

0882nobodyさん05/03/05 09:42:12ID:???
なぜPerlのスクリプトを書いてる人はUTF-8に移行しないのでしょうか?
エロい人おしえてください
088385205/03/05 11:08:25ID:???
>>880
エスケープは何度も試したんですが・・・・

どうやらシングルクォートでやらないといけないようですね。
"/Documents\ and\ Settings/a/*"
これではダメで
'/Documents\ and\ Settings/a/*'
これだといけました。そうなってくるとperlとしては半角をエスケープしてないことに
なるんだけどな・・・よくわからん。
0884nobodyさん05/03/05 12:29:29ID:???
>>882
君のエロさが足りないからさ。
0885nobodyさん05/03/05 12:34:00ID:???
>>883
ダブルクォートだと glob に渡る前にエスケープが解釈されちゃうだろ。

sub hd { join ' ', map uc unpack('H2', $_), split //, $_[0] }
print hd("/Doc\ and\ Set/a/*"), "\n";
print hd("/Doc\\ and\\ Set/a/*"), "\n";
print hd('/Doc\ and\ Set/a/*'), "\n";
0886nobodyさん05/03/05 14:24:31ID:???
>>882
jcode.plがUnicode非対応。
自力でやるにも文字コードの判別、変換が困難。

Perl5.8以降限定や、Jcode.pm必須にするか、
文字コードのチェックを行わなければ大丈夫だろうけど、
そこまでしてUTF-8にこだわる理由が見出せない。

でも、XHTMLが主流になれば、移行していくと思うよ。
0887nobodyさん05/03/05 14:38:07ID:???
俺が自分で作って自分で使うスクリプトはDBまで含めて UTF-8 なんだが
配布するスクリプトはまあいろいろ難しいだろうな
0888nobodyさん05/03/05 15:02:07ID:???
正規表現の置換がうまく行かないです

$tmp = 'http://foo/bar/1234.jpg';
$pat = '(.*)\.jpg';
$rep = '\1.png';
$tmp =~ s/$pat/$rep/;
print "$tmp\n";

これだと、「\1.png」としか表示されません。

置換の所を、
$tmp =~ s/$pat/\1.png/;
にすれば期待通りの結果がでますが、どうすればいいのでしょうか。
パターンも置換文字列も変数を使用したいです。
0889nobodyさん05/03/05 15:02:38ID:???
Win95 や WinMe が完全に廃れれば、メモ帳で UTF-8 開けるから移行が進む?
0890nobodyさん05/03/05 15:26:50ID:???
ちょっと感動。
メモ帳で UTF-8が開けるの初めて知ったよ(Win2000)

でもデフォはSJISだから95とかMeが廃れても無理っぽい。
0891nobodyさん05/03/05 15:36:58ID:???
それでも >>875 みたいな質問がでることはなくなるからいいのでは?
スクリプト開発者はさすがにメモ帳デフォのままでコーディングしないっしょ?
0892nobodyさん05/03/05 16:06:25ID:???
>>888
$tmp = 'http://foo/bar/1234.jpg';
$pat = '(.*)\.jpg';
$rep = '$1.".png"';
$tmp =~ s/$pat/$rep/ee;
print "$tmp\n";
089388805/03/05 16:36:29ID:???
>>892
サンスク
0894nobodyさん05/03/05 17:11:23ID:???
>>887
自分しか使えないスクリプトほどくだらないもんはない。
誰でも使えるものを作れるかどうかが、馬鹿とアホの分かれ道なわけで。

そもそもヘタレが多すぎだな。
環境によって書き換えてもらわないといけないなんてアホくさい。
普通は設定ファイルは別途にしておいて、その設定ファイルをいじるための
インターフェースも作っておく。

プログラムなんてのは他人に書き換えてもらう事を前提にするようなもんじゃない。
想定をこちらで決めてしまわなければどうしようもない。
0895nobodyさん05/03/05 17:15:36ID:???
みんなHTML::templeteってつかってますか?
重いとか聞いたのでまだ使ったことありません。

それにテンプレートを作るってことは変数が乱立せざるを得ないし、
構文を埋め込みok状態で使うならテンプレートファイルを別に作る意味も不明。

とか思ってるんですが、使用されてる方の意見を利かせて下さい。
今は基本的にHTMLはプログラム内にあります。まあ出力内容を作成する
ルーチンなので外部に置いてもなんら問題はありませんが。
逆に差がないなら分ける意味もないですうしね。
0896nobodyさん05/03/05 18:58:05ID:???
>>895
仕事で作る奴はちょろちょろ変更あるのでテンプレートで分けるように
なった。しょうもない文章の修正とかでいちいち本体いじるのうっとう
しいと思ってたのでなかなかよろしい。

で、慣れるとプログラムがすっきりするので、個人で作るような
のもテンプレ使ってたりします。

テンプレライブラリは重いといえば重いんだけど、1ページの表示が
遅いってほどじゃないので、気にすることないと思う。
0897nobodyさん05/03/05 19:06:00ID:???
Unicodeは使いたいんだけど日本語の既存の文字コードとの対応が
メチャクチャなので使う気になれないんだよな。

きちんと変換表が統一される夢のような時代は絶対来ないけど
たぶんそのうちunicodeの変換表の有力な奴相互に判定/変換する
ようなライブラリができるだろうからそれ待ち(笑)

0898nobodyさん05/03/05 19:27:37ID:???
メモ帳じゃBOMなし選択できないじゃん。
そもそも文字コードなんて商売上の理由なんだろうから歩みよりはないだろうし。
俺はこれからもSJIS使っていくぞ。
0899nobodyさん05/03/05 19:29:22ID:???
>>895
俺の場合だと hash や array にぶちこんで渡すので変数が乱立するってことは無い
DBI の fetchrow_hashref で取ってきた hash をそのまま Template に渡してはいおしまい、みたいな感じで
お蔭でプログラムの見通しが断然良くなった
正直 Template 使わない CGI はもう書きたくない

普通は重いんだろうとは思うが、俺んとこは mod_perl 環境なので、
パース済 Template のキャッシュも効いて、全然重さを感じない
0900nobodyさん05/03/05 20:03:51ID:???
つ[Template-Toolkit on mod_perl]
0901nobodyさん05/03/05 20:55:09ID:???
HTML::Templateの最大の弱点は名前空間が分けられない事だな。
例えば、ある顧客のデータと、管理者のデータを一度に表示したい時、
{
client_name => 'hoge', client_address => 'foo',
admin_name => 'hage', admin_address => 'bar',
}
とかで渡してやらんとだめだ。
{
client => { name=> 'hoge', address='foo' },
admin => { name => 'hage', address='foo' },
}
とかじゃだめってことね。
この点Template-Toolkitは偉すぎる。
0902nobodyさん05/03/06 09:56:09ID:???
共用サーバーを利用している貧乏人なもんで、
ちょっとでもスクリプト軽くしたい一心から、
HTML::Templateは問題外と思っている。
HTML::Templateを、数万回/day呼ぶとやっぱ重いかな?
0903nobodyさん05/03/06 13:22:41ID:???
>>902
最適化はprofileの結果を見て効率良くやれ。
0904nobodyさん05/03/06 13:35:38ID:???
重いっちゃあ重いけど、CGI.pm や DBI と比べれば大差ないよ > HTML::Template / Template Toolkit
090589505/03/06 13:41:02ID:???
>>899
私的にはhashやarrayの中に入れることも乱立だと思ってます。
プログラムの見通しは現状でずいぶんいいんですよね。
開始100行部分辺りがプログラムの流れで細かい処理はルーチンを下のほうに作って
あって、そいつらはグローバルをいじることはできなくしてあるし。
間違っても全体の流れてきな処理と個々の処理を同列視しないように作ってます。
こういうやり方にしてから拡張もいくらでもできるようになったし。

でも皆さんなかなか評判がいいようなのでちょっと遊びスクリプトを作る時には
使ってみようかな。ありがとうございました。
0906nobodyさん05/03/06 14:50:24ID:???
>>901
すごく同意 なので私は
$ref->{aaa}->{bbb}を$hash{'aaa-bbb'}に変換する関数を作って使ってます。
$change->{form_data} = \%form_data;
とかが出来るようになって幸せ
0907nobodyさん05/03/06 15:25:36ID:???
>>906
っていうかグローバル変数を危険な形で渡すなよ。(グロバルに限らず)
Templete使う前にアルゴリズムを見直せ。
0908nobodyさん05/03/06 16:13:12ID:???
>>905
ただの構造化で満足している人がTemplateを使えるとは思いませんが。
そもそもビューを切り離すことにメリットを感じない程度の小規模スクリプトしか
書いてないんでしょうから。
0909nobodyさん05/03/06 16:18:15ID:???
>>908
まあ使ってみて目覚めるということもあるから、生温かく見守ってあげようや
漏れも頭ではMVCとか知ってたけど、実際にモノを作ってみるまで恩恵がわからんかった
0910nobodyさん05/03/06 17:13:17ID:???
まるでTempleteが高度なものみたく聞こえてくるな…
まあこのスレのレベルではしょうがないか。
0911nobodyさん05/03/06 17:48:51ID:???
よっぽど自身のレベルに対してコンプレックスがあるんだな・・・。
Templateを単純なコード埋め込み可能テキストくらいにしか使えてないんだろうな。
かわいそうに。
0912nobodyさん05/03/07 02:01:45ID:???
HTML::Templateはファイル置くだけで使えるけど
Templateは置くだけじゃ使えないよね?

しかたなくHTML::Template派。
0913nobodyさん05/03/07 02:03:59ID:dh8KtD97
コンソールに出力する文字の色を変えるようなモジュールってある?
0914nobodyさん05/03/07 02:12:46ID:???
vimで開く
syntax onを忘れずに
0915nobodyさん05/03/07 02:13:04ID:???
>>913
Term::ANSIColor かな?
0916nobodyさん05/03/07 02:30:23ID:???
>>915

板違いで書き込んでいたのに気付かず失礼しました。
それなのに回答をしてくれてありがとう。
今から調べてみます。
0917nobodyさん05/03/07 04:10:46ID:???
>>907
確かにSTDINの内容を渡しちゃうのはキモいけど
my $cgi = new CGI();
my $template = HTML::Template->new(scalarref => \$html, associate => $cgi);
とかよく使われてる手法じゃない?
0918nobodyさん05/03/07 07:31:42ID:???
>>917
サニタイズしなくて大丈夫なの?
0919nobodyさん05/03/07 08:07:45ID:???
my $template = HTML::Template->new();
$template->param(%form_data);
としてクライアントにテンプレートの変更権限が無い場合
%form_dataが例え汚染されていたとしても
重大な影響は与えないと思う。

とはいえ
hoge.cgi?mail=危険なタグ
とかされた場合、ブラウザクラッシュとかもありえるから
サニタイズは必要ですね
0920nobodyさん05/03/07 09:27:19ID:???
>>918
一応、出力時にエスケープできるオプションもある。

>>919
http://www.google.co.jp/search?q=XSS
0921nobodyさん05/03/07 13:11:21ID:???
>>911
頭が悪いって不幸だね。
0922nobodyさん05/03/07 17:36:53ID:???
>>921
顔が真っ赤ですよ?
0923nobodyさん05/03/07 18:44:45ID:???
Template-ToolkitでMVCを実践しようとなると
perlソース側ではprint文、HTMLタグは一切記述せず(httpヘッダくらいはいいかな)
テンプレート側だけで対応する事になるのでしょうか。
速度や保守性を考えるとどのぐらいの割合がいいのかなと思いまして。
0924nobodyさん05/03/07 19:55:37ID:???
ケースバイケースでしょう。
基本的に表示のための加工処理はテンプレートに集中させるべきだと思いますが。
ヘッダは本体スクリプトで。
0925nobodyさん05/03/07 20:36:15ID:C7YlD7f8
配布されているPerlで書かれたCGIを見ると、
$remolog = './remolog.cgi';
のように./をつけているのを多く見ます。
./に何か御利益があるんですか?
0926nobodyさん05/03/07 23:25:57ID:iIlEY0AB
質問させて下さい。

【やりたい事】
methodが post と get と 何もなし で分岐させたい。

【やってる事】
if( $ENV{'REQUEST_METHOD'} eq "GET" ){
  hogehoge
}elseif( $ENV{'REQUEST_METHOD'} eq "POST" ){
  hagehage
}else{
  punipuni
}

【困った事】
エラーになります。分岐を2つ(GET と else、 POST と else)
にするとなぜかエラーになりません。
原因はなんなのでしょうか?よろしくお願いします。
0927nobodyさん05/03/07 23:29:05ID:???
>>926
elsif
092892605/03/07 23:32:09ID:???
速答ありがとうございました。
解決しました。ありがとうございました。
0929nobodyさん05/03/08 00:18:06ID:???
たまに
else if
とか
for(i = 0
とかやっちゃう
093092605/03/08 00:40:31ID:l83v9ZYF
別件も質問させていただきます。

open で 一つ上のディレクトリにあるファイルに書き込みを行いたいと思ってます。

ですが… open DATA "> ../hogehoge.txt";
としてもうまくいかないんです。なにがおかしいのでしょうか?
0931nobodyさん05/03/08 00:45:59ID:???
>>930
引数を二つに分けて渡してあげて下さい。
093292605/03/08 00:54:09ID:l83v9ZYF
>>931
open (DATA, "> ../hogehoge.txt");
これでうまくいかなかったのですが…

これに続く文は
print DATA "hagehage1\n";
print DATA "hagehage2\n";
…
close(DATA);
わかんないっす。
0933nobodyさん05/03/08 01:09:10ID:???
>>932
上のディレクトリのパーミッションは?書き込み権限ある?
0934nobodyさん05/03/08 01:10:31ID:???
SuEXECかCGIWarpがonになってるとか
0935nobodyさん05/03/08 01:12:22ID:???
>>932
とりあえず

open (DATA, "> ../hogehoge.txt") or die $!;

とかしてエラーになるかどうか、エラーならどんなメッセージか
を確認することを薦める。というかopenにエラートラップするのは
基本だ。


093692605/03/08 01:30:33ID:???
>>933
windowsのローカルのApache2ではパーミッションとかわかんないです。
プロバイダのはフォルダには書き込み権限設定してませんが、ファイルは666にしてます。

>>934
意味がわからないです。もうちょっと自分で調べます。

>>935
やってみます。

皆様、ありがとうございます。
093792605/03/08 01:33:05ID:l83v9ZYF
エラーメッセージはローカルで
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
でした。たぶん前と変わりません。。。
093892605/03/08 01:35:23ID:???
プロバイダはwakwakを使ってますが、
「CGI の内部エラーが発生しました。」と日本語表示されました。
こんな事していいのかな。。。
093992605/03/08 01:42:39ID:???
失礼しました。
原因は他にありそうです。m(_ _)m
094092605/03/08 01:59:17ID:l83v9ZYF
原因わかりませんが、エラーの当該箇所わかりました。
print DATA "<a href=\"http://";
print DATA "127.0.0.1";
print DATA "/\">今は入れないよ</a>\n";

こういうのを書いていたのですが、1行にするとエラーが回避されて正常動作するようになりました。
理由わからないです。
ダブルクォーテーション関係ありますか?
0941nobodyさん05/03/08 03:08:26ID:???
>>926
ようわからんけど、コマンドプロンプトじゃなくブラウザで動作確認してるみたいだから、
#- - - - - - - - - - - - - - - - - -
#!/usr/bin/perl
# use strict;

open (DATA , "> ../hogehoge.txt") || &error($!);
print DATA "<a href=\"http://"; # この辺は任意
print DATA "127.0.0.1";
print DATA "/\">今は入れないよ</a>\n";
close(DATA);

&error('OK!');

sub error {
$, = "\n";
print "Content-type: text/html\n\n";
print '<title>Error</title>', '<pre>', @_, '</pre>';
exit;
}
#- - - - - - - - - - - - - - - - - -
というファイルでも作って確認してみたら?
(「DATA」の部分を「SAVE」とかに変えたらできたりしないかね? 普通は関係ないけど)
0942nobodyさん05/03/08 03:13:58ID:???
ダブルクオーテーション止めて、シングルクオーテーションにしたら?
0943nobodyさん05/03/08 03:17:45ID:???
あと文字コード Shift_JIS で書いてるなら、EUC-JP か UTF-8 にするとか。
0944nobodyさん05/03/08 07:35:02ID:???
ローカルのApacheならエラーログを見れば一発なのに。
0945nobodyさん05/03/08 08:00:51ID:???
CGI::Carpモジュールが使えるなら、

use CGI::Carp qw(fatalsToBrowser);

しとけ。dieしたときのメッセージがブラウザにも出るようになる。
0946nobodyさん05/03/08 15:24:44ID:???
おまいら、
# no parentheses
  $foo = new Foo $arg1, $arg2;
# parentheses
  $foo = new Foo ($arg1, $arg2);
# arrow
  $foo = Foo->new($arg1, $arg2);
のどの書きかたしてる?
parenthesesみたいにカッコつけると、
やっぱサブルーチンに見えて紛らわしいものなのかねー。
あー、
  $foo = new Foo +($arg1, $arg2);
もあり? うーん。
094792605/03/08 15:42:14ID:???
Apacheのエラーログは
Premature end of script headers
でした。
0948nobodyさん05/03/08 18:43:01ID:???
>>946
2番目。C++で慣れてたので。ただそれだけ。
別にカッコ付けてもサブルーチンには見えないと思います。
0949nobodyさん05/03/08 20:32:35ID:/HU/2hpG
>>946
何となく3番目。
0950nobodyさん05/03/08 21:01:58ID:???
タグの外側だけ対象に置換するには
s/((?:\G|>)[^<]*?)foo/$1bar/g;
と書けますが、
・1回だけでいい(gオプションをつけない)
・最初にタグ以外の文字があるテキスト(そこにもマッチさせたい)
とした場合、どのように書いたらいいでしょうか。
なるべく速いほうがいいのですが。
0951nobodyさん05/03/08 21:27:00ID:???
他のモジュール見てると3番目を良く見るので3番目にしてる。
0952nobodyさん05/03/08 21:34:43ID:???
>>946
3番目
漏れは矢印あったほうが直感的に理解しやすい
0953nobodyさん05/03/08 22:07:09ID:???
簡単なディレクトリ表示プログラムなんですが
use File::Find;
$dir = "C:\\WINDOWS\\Favorites";
find(\&print_file,$dir);

sub print_file{
print "$File::Find::name\n";
}

C:\WINDOWS\Favorites/test.html
みたいに表示されてしまうんですが、
C:WINDOWS\Favorites\test.html
みたいに表示したいんですけど
どうしたらいいんでしょうか?
0954nobodyさん05/03/08 22:19:35ID:???
s//g
0955nobodyさん05/03/08 23:02:12ID:???
('A`)
0956nobodyさん05/03/08 23:12:33ID:???
"('A`)" =~ m('A`)m
0957nobodyさん05/03/09 01:48:46ID:???
>>953
File::Spec->canonpath($File::Find::name)
0958nobodyさん05/03/09 03:18:19ID:???
タグ除去で
$aaa =~ s/<.*>//i;
にしてたのですが、
<TD>あああ</TD>
こういう1行に2つ以上タグがあるところは除去されてしまうようです
ちゃんと<TD>あああ</TD>⇒あああにするにはどうすればいいですか?
0959nobodyさん05/03/09 03:22:40ID:???
>>958
non-greedy マッチで
0960nobodyさん05/03/09 03:29:36ID:???
>>959
ありがとうございます、できました
しかしレスはやいっすね・・・
0961nobodyさん05/03/09 03:39:03ID:???
>960
ちなみにどうやったか書いてって〜
0962nobodyさん05/03/09 06:39:54ID:???
>>947
ヘッダを出力する前にプロセスが終了してる。
理由としては
1. HTTPヘッダを出力していない。
2. ヘッダを出力する前にエラーが起きている。
のどちらか。
1.は出力するように修正する。
2.はエラーログにperlのエラーが出力されているので、それを見て修正。

Apacheの場合、改行二回するだけでも、
デフォルトのcontent-typeを吐いてくれる。
(httpd.confをいじってなければtext/plain)
0963nobodyさん05/03/09 15:42:37ID:TPYzASqD
PHPでいう、
<?
require ("./test/index.html");
?>
これをperlで再現したいのですが、
是非方法を教えて頂けませんでしょうかorz
0964nobodyさん05/03/09 15:51:43ID:???
>>963
require "パス";
0965nobodyさん05/03/09 15:53:29ID:???
>>958
アホ
$value =~ s{<[^>]*>}{}g;
0966nobodyさん05/03/09 15:53:39ID:???
>>963
PHPくだスレでのレスは放置かYO。
それに、
「PHPではrequireはコレコレこういう機能がありますが、
Perlでそれを実現するにはどうしたらいいですか?」
って感じの質問の仕方が真っ当だと思うが。

0967nobodyさん05/03/09 16:00:05ID:TPYzASqD
>>966
すいませんでしたorz


あと、Perlでreqireを使ってphpを呼び出すことは可能でしょうか・・・?

require "./test/index.php";
print index("$index");
↑
これはphpでrequireを使ってindex.phpを呼び出したときの成功ソースです
perlでは失敗しましたorz

ちなみにindex.phpの構造はこんなかんじです
<?
function index($index) {
return "hello!";
}
?>
0968nobodyさん05/03/09 16:03:53ID:???
次の質問どぞー
0969nobodyさん05/03/09 16:12:05ID:???
>>967
おめえはPerlの解説サイト見るって事はできねえのか?
requireがどういう処理をするか調べて自分で考えろよ。
0970nobodyさん05/03/09 16:13:09ID:???
>>967
できるわけねえだろ糞ボケ
0971nobodyさん05/03/09 16:15:25ID:???
>>967
お前にはPerlは無理だ
PHPならできるかもしれないが
0972nobodyさん05/03/09 16:38:24ID:???
出来るに決まってんだろボケナス
0973nobodyさん05/03/09 16:42:30ID:bpuh5/Rp
現在、下のようになっています

open new, '>new.txt';

@data = split /\t/;

if($data[0] eq 'kawagoe'){
print new "$_";
}


これですと、データを全て新ファイルに記憶してしまいますが、
data[2](タブ区切り三つ目のデータ)だけを省いて記録するには
どのように書き換えたらよいでしょうか?
0974nobodyさん05/03/09 17:05:05ID:???
>>972=>>967
0975nobodyさん05/03/09 17:25:19ID:ox3iJUQY
現在、perlでけっこうな数のスクリプトがあり、これにphpで発行した
セッションを組み込もうと思っています。
phpで発行したセッションはperlからは利用できないのでしょうか?
0976nobodyさん05/03/09 17:46:10ID:???
>>975
しつけえなこいつ

セッションファイルを共有すればいいだけだろ。
そんなこともわからんのか。
レス数が950を超えています。1000を超えると書き込みができなくなります。