Perl言語に詳しい人に質問!

このエントリーをはてなブックマークに追加
773Perl中級者になりたい
Perlで初めてWebプログラミングを作りました。
URLを入力するとリンク切れをチェックしてくれるツールです。

http://w7.oroti.com/~webhacks/

ソースコードを公開しますので、厳しいご意見お待ちしてます(汗
774デフォルトの名無しさん:2008/07/23(水) 16:54:33
ロゴがかっこいいとおもいます(汁
775デフォルトの名無しさん:2008/07/23(水) 17:06:30
776デフォルトの名無しさん:2008/07/23(水) 17:09:05
>>773
webprog池
777デフォルトの名無しさん:2008/07/23(水) 17:23:38
x print "Content-type: text/html\n";
o print $cgi->header();
778デフォルトの名無しさん:2008/07/23(水) 17:35:45
x my %http_code = ...;
o use HTTP::Status qw/status_message/;

x 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'
o 'LinkHACKS (+http://w7.oroti.com/~webhacks/)'

x $browser->get(...);
o $browser->head(...);
779デフォルトの名無しさん:2008/07/23(水) 17:54:32
>>778
$resp->status_lineで取れるから
>my %http_code = ...;
これはいらないな
780Perl中級者になりたい:2008/07/23(水) 18:22:40
>>775
ahoの嵐・・・orz
受け取ったデータのチェックが必要ですね。。頑張って修正します。

>>776
webprog板逝ってきます。

>>777-779
   /      \
  /  ─    ─\ 
/    (●)  (●) \ 
|       (__人__)    | )) なるほど
/     ∩ノ ⊃   /
(  \ / _ノ |  |
.\ “  /__|  |  
  |\ /___ /|
  |          ノ
  ヽ   y    /
   \ /     /
    /   /
   (___)_)
781デフォルトの名無しさん:2008/08/10(日) 22:27:23
Perl6だとメソッドの呼び出しが矢印(->)じゃなくてドット(.)になるようですが、コードリファレンスの呼び出しに関しても同じなようです。
http://dankogai.typepad.com/blog/2006/03/lamda_calculus_.html

また、RubyでもProcオブジェクトの呼び出しに"proc.()"という書き方が採用されようとしています(もう採用されたかは知りません、試してないので)
http://www.rubyist.net/~matz/20071011.html

ここで思うのですが、なんで"$coderef()"じゃなくて"$coderef.()"のような文法を採用するのでしょうか。

前者のほうが、読みやすい+書きやすいようにおもうのですが。確か、javascript では後者だったような気がします。
782デフォルトの名無しさん:2008/08/11(月) 20:45:52
オトナの事情
783デフォルトの名無しさん:2008/08/11(月) 22:58:24
>>781
現行だと$coderef->() だろ?
. の方がバイト数がかせげる & '->' と言う定義をせずに済む。
何しろ > は => だの <=> だの他にも大活躍だから、、、
784デフォルトの名無しさん:2008/08/12(火) 00:18:26
>>783
それ答えになってなくね?
785デフォルトの名無しさん:2008/08/12(火) 02:01:32
>>781
名前空間とパーザの都合。……Rubyの場合は。
Perlは何故なんだろうねぇ。変数を示すプリフィクスが付いてるんだから問題なさそうな気がするんだが。括弧省略との相性が悪いのかな?
786デフォルトの名無しさん:2008/08/12(火) 02:48:01
$foo.()と$foo()は同じ意味のはず。

例えば、&はP5と違って関数をオブジェクト化したものを返すけど、
これを呼ぶときも、&bar.()と&bar()の両方で書ける。
787781:2008/08/12(火) 09:24:25
>>786をヒントに自分でも調べてみました。
ttp://perlcabal.org/syn/S06.htmlの
"Pointy blocks"のコード例がそれなのかなあ。
あとアンパサンドのプレフィクスでオブジェクト化された関数が返るのは
Wrappingのあたりでしょうか。

P6のシンタックスはおもしろいですね。キュンとなる。
時間が取れたら遊んでみます。
788デフォルトの名無しさん:2008/08/12(火) 19:21:42
>>787
他にも++なんかの接尾演算子でも、$foo.++; と $foo++; の両方で書ける。
これは演算子がオブジェクトのメンバだっていうイメージなんだろうね。
789デフォルトの名無しさん:2008/08/12(火) 20:44:56
Perl勉強中で
変数Aにオブジェクトが入ってて
オブジェクトに$Cの値を入れようとしてるんですが
下記の1,2の違いについて調べても分からなくて
教えてくださるかたいませんか?_?ヒントだけでもいいので;w;
1: $A->B($C);
2: $A->{B} = $C;
790デフォルトの名無しさん:2008/08/12(火) 20:57:04
>>789
「オブジェクトに$Cの値を入れ」るが意味不明。
もう少しちゃんとした言葉を使って説明してくれ。

1は PackageOfA::B($A, $C) とおなじ、
2は ${$A}{"B"} = $C とおなじ。
791デフォルトの名無しさん:2008/08/13(水) 10:14:09
1のBはメソッドでCは引数
2のBはハッシュのキーでCは値
792デフォルトの名無しさん:2008/08/30(土) 01:16:38
あいかわらず、日本語マッチングは面倒ですか?

Emeditorの正規表現の方がよくね?
793デフォルトの名無しさん:2008/08/30(土) 01:28:07
日本語マッチングって何?
794デフォルトの名無しさん:2008/08/30(土) 01:30:05
まだつかえないんだ・・・
795デフォルトの名無しさん:2008/08/30(土) 01:34:30
だから日本語マッチングって何だよ。
796デフォルトの名無しさん:2008/08/30(土) 01:39:45
まだつかえないんだ・・・
797デフォルトの名無しさん:2008/08/30(土) 01:54:45
^^;;;;;;
798デフォルトの名無しさん:2008/08/30(土) 03:24:45
まぁどの言語でもそうだが、バカには使えないわな。
799デフォルトの名無しさん:2008/08/30(土) 08:20:16
20世紀からタイムスリップしてきたひとか
800デフォルトの名無しさん:2008/08/30(土) 08:28:11
>>799
もしかして、20世紀から生きてる人ですか?
801デフォルトの名無しさん:2008/08/30(土) 09:07:51
この板も、とうとう小学生が跋扈するようになったか。
802デフォルトの名無しさん:2008/08/30(土) 11:48:21
最初のプログラミング言語がPerlって、
スパゲッティー作りになることを義務づけられるぞ。
803デフォルトの名無しさん:2008/08/30(土) 13:30:38
最近の小学生は制御構造なんて使いこなせないから
804デフォルトの名無しさん:2008/08/30(土) 13:33:41
CASE文満載でなければおk
805デフォルトの名無しさん:2008/08/30(土) 13:44:14
最初に入った言語がCOBOLだった俺からいわせれば、perlなんて可愛いもの。
806デフォルトの名無しさん:2008/08/31(日) 08:33:14
>800 は8歳だったのか。
算数の勉強頑張れよ。
807デフォルトの名無しさん:2008/09/09(火) 13:31:52
>>1の日付見て吹いた
2008/08/13の勢いは異常だな
808デフォルトの名無しさん:2008/10/26(日) 12:34:29
あげ
809デフォルトの名無しさん:2008/11/11(火) 02:41:57
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7995.txt
学校の課題で、このプログラムの仕組みをこと細かく説明しろっていうのがでて困ってます
助けてください
810デフォルトの名無しさん:2008/11/12(水) 02:48:46
>>809
課題は自分でやれよ。

811デフォルトの名無しさん:2008/11/12(水) 19:39:55
>809
sjisがベタで使われてるとか、htmlのタグの記述に統一性が無いとかで
極力係わり合いになりたくないコードだなぁ
タイトル増やすのも面倒だ

こいつを書き直せって課題なら、嬉々としてやるところだw
812デフォルトの名無しさん:2008/11/12(水) 20:24:09
webprog池よ
813デフォルトの名無しさん:2008/11/13(木) 00:23:01
>>809
ガッコの課題で、そんな例題を出すのかぁ・・・・

そりゃ問題だ!
814デフォルトの名無しさん:2008/12/18(木) 09:08:52
perlでメールの添付ファイルの処理をしようとして、
ttp://homepage3.nifty.com/hippo2000/perltips/rcvmail.htm
を参考にプログラムを書こうと思っているのですが、
上記ページのWordDecoderを使ったサンプルプログラムを実行すると、
保存されたファイル名がURLエンコードされている状態になってしまいその原因が分かりません。

実はURLエンコードされている方が扱いやすくてうれしいのですが、
原因が分からないのが気持ち悪くて…。

どなたか教えていただけないでしょうか。
動作環境はFreeBSD6.0で、Jcode, MIME-Toolsはportsでインストールしました。

よろしくお願いいたします。
815814:2008/12/19(金) 05:30:45
すみません、別のスレ(Perlについての質問箱)で聞いてこようと思います。
失礼しました。
816デフォルトの名無しさん:2009/01/12(月) 16:26:57
perlで書かれたプログラムをダウンロードしたのですが、
使い方として、
・本体(exxeed.pl)は編集の必要がありません。
・cpiファイルにスクリプトを追記して、動作を指定します。

・起動方法
コンソールから
> perl exxeed.pl hogehoge.cpi


とだけ書かれているのですが、これって、
サーバー内のCronなどからコマンドで実行するって事ですか?
817デフォルトの名無しさん:2009/01/12(月) 17:12:41
シェルから実行すればいいだけだろ
818デフォルトの名無しさん:2009/01/12(月) 22:20:52
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
>コンソールから
819デフォルトの名無しさん:2009/01/12(月) 22:31:55
コンソールから
シェルから

この意味がぐぐってもイマイチ理解できてないです。
要するに、サーバーにアップして使用するのではなく、
コマンドプロンプトとかから実行するものなのですか?
820デフォルトの名無しさん:2009/01/12(月) 22:42:56
>>819
そのperlスクリプトが提供する機能がわからんのに答えられるわけがなかろう。
定期的に動かすものならcronに登録するし、
CGIならWebサーバのCGIディレクトリに設置するし、
コマンドラインで実行することになってるプログラムならコマンドプロンプトやターミナルエミュレータから実行するし、
GUIアプリならエクスプローラやファイラーからダブルクリックする。
821デフォルトの名無しさん:2009/01/12(月) 23:08:34
>>819
サーバで動かしたいなら、サーバにアップロードしてから
リモートシェルの類で実行すればいい。

なんにしてもperlの使い方の質問じゃないから、
適当なスレを探してくれ。
822デフォルトの名無しさん:2009/01/13(火) 01:30:46
  ・起動方法
  コンソールから
  > perl exxeed.pl hogehoge.cpi

これ読んでわからんのなら、パソコンの使い方を勉強しろ。
そうとしか言いようが無い。
駅前のアビバに通った方がいいぞ。
823816:2009/01/13(火) 04:20:00
皆さん有難うございました。
まだよくわからないので、他スレで聞いて見ます。
824A:2009/01/13(火) 16:19:41
それは、コマンドプロンプトから起動(実行)するもの。
UNIX/Linuxの場合、シェルから起動(実行)する、とも言う。
>>816 何がしたいのか書いてない。
<form method="POST" action="exxeed.pl"> ただこれは無理だと思う。
825デフォルトの名無しさん:2009/01/13(火) 17:23:00
コンソールっつーとサーバセンターまで行ってキーボードぶっ挿して、ってイメージ
826デフォルトの名無しさん:2009/01/14(水) 02:44:27
  ↑
Windows しか触ったこと無いひと。
827デフォルトの名無しさん:2009/01/14(水) 17:07:49
>>822
アビバってそんなこと教えてくれるの?
828デフォルトの名無しさん:2009/01/16(金) 23:18:15
ウェブプログラミングで引っかかってる問題だが、本質はEncode.pmなんで、こっちで聞こうと思いまつ。

utf-8の"〜"を Encode::from_to で EUC-JPに変換すると、?に文字化けするようです。
-------------------------------------サンプル
#!/usr/bin/perl -w
use strict;
use Encode;

my $str ="〜";
Encode::from_to($str, "utf-8", "euc-jp");

print "Content-type: text/html\n\n<html><head><meta http-equiv='Content-Type' content='text/html; charset=EUC-JP'></head><body>$str</body></html>";
-------------------------------------サンプル

これってEncode.pmのバグですか?対応方法は何かありますか?
829デフォルトの名無しさん:2009/01/16(金) 23:30:03
830デフォルトの名無しさん:2009/01/16(金) 23:32:34
>>829
dです。
831デフォルトの名無しさん:2009/01/17(土) 11:09:28
>>828
関係無いけどウェブプログラミングなら

>#!/usr/bin/perl -w
>use strict;
>use Encode;
ここは
#!/usr/bin/perl -T
use strict;
use warnings;
use Encode;
のほうが良い。
832デフォルトの名無しさん:2009/01/28(水) 12:51:50
829さんのスレッドが落ちていたのでこちらで質問失礼します。

Perlで、ハッシュデータにKEYとKEYに対応した値が多数格納されているとします。
そのKEYに対応した値から、KEY自体を取り出したいのですがそれは可能でしょうか。

可能でしたら簡単なプログラム例を教えて頂けると大変助かります。
833デフォルトの名無しさん:2009/01/28(水) 13:18:12
while ( ($key, $value) = each(%hash) ) {
  if ($value eq "うんこ") {
    print $key;
  }
}
834デフォルトの名無しさん:2009/01/28(水) 13:21:59
>>832
reverse使えばできる。
my %new_hash = reverse %old_hash;
これで、元のハッシュの値をキーとして、
元のハッシュのキーを値とするハッシュができる。

ただし、元のハッシュで値が同じものが2つ以上あるときには、
うまくいかないです。

835デフォルトの名無しさん:2009/01/28(水) 13:27:30
>>833-834
なるほど、納得致しました。
お二方とも有り難うございます!
836デフォルトの名無しさん:2009/01/31(土) 09:16:57
正規表現なのですが

<h2 class="title">を正規表現で表すと、(英数字の[0-9|a-zA-Z]は省略)

<h2.\s.class=\"title\">でよいのでしょうか
837デフォルトの名無しさん:2009/01/31(土) 10:00:45
聞く前に自分で試した方がなんぼか速いんでないかい
838デフォルトの名無しさん:2009/01/31(土) 10:26:57
>>837
試したのですが、出来なかったので間違っていると思うのですが
どこが間違っているのかわかりません
839デフォルトの名無しさん:2009/01/31(土) 10:55:38
>>838
htmlのタグで一番簡単なマッチはこの2通り

/<.*>/
/<[^>]*>/

てか正規表現のスレで聞けばはやいのでは?
840デフォルトの名無しさん:2009/01/31(土) 12:21:37
>>836
"."は文字一つ食べてごちそうさま。
"\s"はスペース一つ食べてごちそうさま。
もうひとつ"."も文字一つ食べてごちそうさま。

何文字用意してあげれば、おなかいっぱいになるの?
うん、三文字。
スペース一文字じゃ、おなかいっぱいにならないね。
食べるの控えたら、だいじょうぶ?
食べるの控えたら、だいじょうぶ?
841デフォルトの名無しさん:2009/01/31(土) 14:59:32
>>839

/<.*?>/

こっちは?
842デフォルトの名無しさん:2009/02/01(日) 02:47:31
Perlのコードのことで判らないことがあるため質問させていただきます。
現在読んでいるコードに、
return 0 if ($hoge < 1);
のような行があるのですが、これはどのような処理になるのでしょうか?

関数の途中にあり以下にも処理の記述があるため、私の想像では
return 0
の後ろに続く、ifが真のときにreturnが実行されるかと思うのですが、
なぜこのような書き方をするのでしょうか?

私が考えるのでは、
if ( $hoge < 1) {return 0;}
とすればいいかと思うのですが、何か理由があるのでしょうか?


質問をいくつもすみませんが、教えていただけるとありがたいです。
843デフォルトの名無しさん:2009/02/01(日) 02:53:23
>>842
英語の表現で、
hogehoge if fugafuga
ってのがあるだろ? それをプログラミング言語の文法に組み込んだのが前者。
意味は後者と同じ。
844デフォルトの名無しさん:2009/02/01(日) 02:59:26
>>843
ありがとうございます。

やはり、ただの書き方の違いだけでしたか。
845デフォルトの名無しさん:2009/02/01(日) 04:19:25
>>844
>return 0 if ($hoge < 1);
>if ( $hoge < 1) {return 0;}

書き方の違いもあるけど直感でわかるかどうかも重要だから
そういう箇所は書き直していったら後から読む人は助かる箇所も出てくると思う。
それで動作しなくなったら問題なので十分に注意、検証は必要だけどね。
846デフォルトの名無しさん:2009/02/01(日) 07:57:50
「orが嫌い」と言う理由で「||」に全置換かましたバカを思い出した。
847デフォルトの名無しさん:2009/02/01(日) 07:59:55
処理が単文なのにいちいちブロック書くのが面倒というのもある。
さらに
return 0 if $hoge < 1;
とも書ける。前に書く場合は括弧が必須。
文修飾子(statement modifiers)(後ろに付ける if, unless, while, until, foreach)を使うなら
括弧を書かない場合が多いんじゃないかな。
848デフォルトの名無しさん:2009/02/01(日) 10:14:39
>>846
まさか単語一致せずにかw
849デフォルトの名無しさん:2009/02/01(日) 10:43:43
>>842
C言語脳の恐怖・・・
850デフォルトの名無しさん:2009/02/01(日) 11:07:45
>848
単語一致以前に or と || では優先順位が異なる。
851デフォルトの名無しさん:2009/02/01(日) 11:24:22
>>850
ああ、そういう意味ですか。

operatorの「or」も置換して、operat||にしてしまうのかと思った。
852デフォルトの名無しさん:2009/02/02(月) 00:01:51
普通に考えて優先順位の話ってわかるじゃん(´・ω・`)
853デフォルトの名無しさん:2009/02/02(月) 14:48:35
質問なんですけど、@INCに入るパスって環境変数のPERL5LIB以外にどこからとってきてますか?
zshrcには書いてあるパスの集合がAだとすると、
local/lib/perl5/5.8.8
local/lib/perl5/i386-freebsd-64int
A
local/lib/perl5/5.8.8/BSDPA
local/lib/perl5/site_perl/5.8.8/mach
...
というような並びで並んでます。
Aの前と後にどこからパスを持ってきているのかわからず。perlのコンパイルの時にそんな指定するんでしたっけ?
PERLLIBも指定してなし、よくわからない
854デフォルトの名無しさん:2009/02/02(月) 14:54:16
>>853
そうです
855デフォルトの名無しさん:2009/02/02(月) 15:43:52
>>851
そんなこと言い出したら "or" が部分文字列として含まれる単語なんて
いくらでもあるじゃないか
このスレ見える範囲で検索しただけでも word, form, ports, livedoor とか出てきた
856デフォルトの名無しさん:2009/02/02(月) 16:28:22
>>854
なるほど。ありがとうございます。
コンパイルした後に変えることは無理?
5.8.8をもう一回コンパイルし直すならいっそのこと5.10をコンパイルしようかなと思うのですけど。
857デフォルトの名無しさん:2009/02/04(水) 02:58:37
use libできんのか?
858デフォルトの名無しさん:2009/02/04(水) 11:48:57
>>857
use libとか@INCに入れれば解決なのだけど、
そもそもそのリストをどこからどういう順番で取ってきているかを知りたかったのです。
おれの@INC、パスがダブっちゃったりしてるから。
859デフォルトの名無しさん:2009/02/04(水) 15:59:20
>>858
ソースのperl.cを参照。

ソースをそのままコンパイルして使うならまあいいんだけど、
一部のLinuxディストリによっては、これにpatchが当たってて、
読み込むパスや順番が異なってる。
860デフォルトの名無しさん:2009/02/04(水) 21:37:40
>>856
> コンパイルした後に変えることは無理?
スクリプト単位なら use lib や BEGIN { @INC = ... } 。
ユーザ単位なら環境変数 PERL5LIB / PERLLIB。
システムワイドに設定したければ、sitecustomize.pl が
利用可能ならその中で好きに編集すればいい。
861デフォルトの名無しさん:2009/02/13(金) 21:46:00
プログラム読んでてよくわからん構文出てきたから
最小のコードにしてみたらこうなった

sub a{return [(1)x5];}
@b = @{a()};
for(@b){print;print " ";}print "\n";

2行目の@{ }で囲っているところは何をやっているのか
誰か教えて
862デフォルトの名無しさん:2009/02/13(金) 22:16:21
デリファレンス
863デフォルトの名無しさん:2009/02/13(金) 22:43:00
把握した
864デフォルトの名無しさん:2009/02/14(土) 03:18:56
@{[ $ref ]}

kore nani?
865デフォルトの名無しさん:2009/02/14(土) 05:50:12
dereference
866デフォルトの名無しさん:2009/02/16(月) 00:03:57
>>864
リファレンス作ってデリファレンスしてる。
無名配列を作りたい時に便利。
例えば文字 "," のカウントをしたい場合。
====
my $str = q{a,c,b,d,e} ;
#my $cnt = $str =~ /,/g ; #<= ダメ
#my $cnt = my @tmp = $str =~ /,/g ; #<= tmp 作るの?
my $cnt = @{[ $str =~ /,/g ]} ;
print $cnt . qq{\n} ;
====
最もこのケースだったら以下の方法のが遥にスマート
my $cnt = () = $str =~ /,/g ;
my $cnt = $str =~ tr/,// ;

ちなみに↓コレだと @{[]} する意味があんまり…
@{[ $ref ]} ;
867デフォルトの名無しさん:2009/02/18(水) 20:18:16
868デフォルトの名無しさん:2009/02/18(水) 20:45:27
これはいいもん読めた
869デフォルトの名無しさん:2009/03/04(水) 12:28:30
ここまだ残ってるんだな・・・

(糞レスすまん
870デフォルトの名無しさん:2009/03/25(水) 23:33:08
○○.cgiのプログラムで、
「exec △△.pl $param1」とexecを使用して呼び出しても、
呼び出し先の△△.plが実行されないです。

環境が原因と思うのですが、
初心者で何が原因かわからないです。
871デフォルトの名無しさん:2009/03/26(木) 00:01:05
webprogいけ
872デフォルトの名無しさん:2009/03/26(木) 00:49:20
初心者がCGIとかヤメレ
873デフォルトの名無しさん:2009/03/26(木) 02:17:49
マルチ氏ね
874デフォルトの名無しさん:2009/03/26(木) 06:22:15
【Yahoo!番付で亀井をMVPにしようぜwwwww】
ttp://takeshima.2ch.net/test/read.cgi/news4vip/1237983005/50
ベンチの支えあっての原JAPAN 亀井こそが真のMVP
     ↓
イチロー福留青木稲葉がいる外野においては常にベンチが決まっているような状態で、
でももう一人予備の外野を選ばなくてはいけなくなった。
そのような役は自軍から出さねばならないと考えた原監督は亀井に白羽の矢を立てた。
誰もが落選すると思われていた亀井だったが、最終メンバーに選ばれた。
亀井も一度は監督に辞退を伝えたが、原監督は亀井に説得を行う。
亀井は尊敬する監督にそこまで言われたら、ということで辞退を撤回。
叩かれる事が分かっていながらもベンチから声援を送り続ける。
そんな亀井はMVPに相応しい
875デフォルトの名無しさん:2009/03/26(木) 16:37:43
マルチ氏ね
876デフォルトの名無しさん:2009/03/30(月) 14:32:06
おまいらお願いです。

フルパス文字列から親ディレクトリ名を取り出す方法を検討中なのですが、
例) /hoge/fuga/var/foo を入れると /hoge/fuga/var が出てくる

$PATH = '/hoge/fuga/var/foo';
$PATH =~ m|.*/|;
$PATH = $&;
$PATH =~ m|\/$|;
$PATH = $`;

こんな風にして一応動いたんですが、カコワルくて人に見せれないコードです。
もっとすっきりキレイに仕上げる方法がある気がしてなりません。
もっとキレイな方法を教えてもらえませんか?
877デフォルトの名無しさん:2009/03/30(月) 15:28:28

my $target = '/var/www/html/index.html';
my($per_dir)  = $target =~ m|(.+)/[^/]+/?|;

print $per_dir,"\n";

”親directory”とゆうことなので。
それじゃイヤンってんなら、ググるなりして調べてくれ。
878デフォルトの名無しさん:2009/03/30(月) 17:18:53
>>877
ソレダ!d。
879デフォルトの名無しさん:2009/03/30(月) 23:25:17
>876
File::Basename の dirname 使えば?
880デフォルトの名無しさん:2009/03/31(火) 01:13:27

$path =~ s/[^\/]*$//;
881876=878:2009/03/31(火) 21:50:51
>>879 >>880
d。やりたかった事は、レン鯖のDOCUMENT_ROOTの1個上にDBやらパスワードの設定ファイル(xml)を置いて、それを読み込んで処理する作業だったのです。

use XML::Simple;
- 略 -
my $DOCUMENT_ROOT = $ENV{'DOCUMENT_ROOT'}; # httpサーバが表示する / ディレクトリ
my ($SETTING_PATH) = $DOCUMENT_ROOT =~ m|(.+)/[^/]+/?|; # 親ディレクトリ

my $DB_Info_XML = XMLin($SETTING_PATH. '/dbpassword.xml');
my $DB_NAME = $DB_Info_XML->{dbinfo}->{dbname};
- 略 -

という感じで実装しました。あとで>>880のやり方に書き換えます。^^
882デフォルトの名無しさん:2009/04/01(水) 20:54:35
教えてください。

CatalystでDBIx::Class使って pagerやろうとしたのです

my $rs = $c->model(..)->search({}, {page =>1, rows=>10});
$c->stash->{data} = $rs;

.tt にて

[% SET pager = data.pager %]
[% INCLUDE pager.tt %]

で、data.pagerを参照するところで
Can't create pager for non-paged
と言われて困ってます。
どなたか助けて頂けませんか?
883882:2009/04/01(水) 21:36:58
申し訳ありません。自己解決しました。
pageに渡している値が空のケースがあるとあのエラーがでるようです。
失礼しました。
884デフォルトの名無しさん:2009/04/08(水) 18:43:15
885デフォルトの名無しさん:2009/04/09(木) 00:13:38
そうねぇ、、、perl って小回り効くから確かに便利だけど、
sed+awkとして使うまでに留めておくべきだな。

技術者の力量に依るような自由な言語は、プロジェクトとしてはなるべく使いたくない。
886デフォルトの名無しさん:2009/04/09(木) 01:49:17
いまどき CGI は無いだろ
887デフォルトの名無しさん:2009/04/09(木) 02:43:41
>884
PerlはLL界のCOBOLになったな。
888デフォルトの名無しさん:2009/04/09(木) 09:15:17
>>884
こういうの見ると「終わった感」が増して逆効果だと思うんだが・・
団結して良さを説明ようとか、方法論からして前世紀かよって思う。
889デフォルトの名無しさん:2009/04/09(木) 09:32:04
「モダンPerl入門」って糞?
890デフォルトの名無しさん:2009/04/09(木) 09:54:31
WEBアプリ以外はソフトウエアに非ず

そんな風潮。
perl はWEBアプリ専用言語じゃないのに
PHPやらASPやらJSPやら出てきたら
perl はお払い箱?・・・それじゃ、かわいそうだよ。
891デフォルトの名無しさん:2009/04/09(木) 20:48:27
誰か助けて下しア
環境がPERL5.8.* Jcode 2.6.5
PERL5.6.1 Jcode2.0から移したら
今までCGIで文字化けしなかったものが化けました。

$str = '莞ゲマン;
$hoge = Jcode->new($str, euc)->h2z->euc;
print "$hoge";

今までは 潟zゲマン
と表示されていたのに、 ?ホゲマン
となります。

原因を調べていたら、5.8移行は機種依存文字は無視しないで?に変換してしまうとのことで。。。
これを 潟zゲマン となるように
解決したいのですが、どなたかご教授ください。
892デフォルトの名無しさん:2009/04/09(木) 20:49:26
すません、ちなみに〜入れろ、とかは出来ない状況です。
UTF8でやれとかも無理な状態です
893デフォルトの名無しさん:2009/04/09(木) 21:04:36
すません
他で聴くためこちらの回答は不要です
失礼しました
894デフォルトの名無しさん:2009/04/09(木) 21:13:49
お前誰だよ
895デフォルトの名無しさん:2009/04/10(金) 00:36:43
>>884-888
蛇足情報として書いておくと、米国は perl / python 使いが多い。
896デフォルトの名無しさん:2009/04/13(月) 00:37:36
>>890
PerlはCみたいに残るでしょ・・・

awkは使ったこと無いw
897デフォルトの名無しさん:2009/04/13(月) 00:53:40
Windows の時代になっても
バッチファイルは残った。
だから Unix が GUI になっても
Perl は残る。
898デフォルトの名無しさん:2009/04/14(火) 00:13:45
その文脈だと、残るのは sh であって perl ではないような、、、

まあ、perl がなくなるようなことはないだろうけど。
899デフォルトの名無しさん:2009/04/15(水) 12:40:44
ちょw
900デフォルトの名無しさん:2009/04/16(木) 23:33:24
cshみたくpshとか出来るんじゃね?
901デフォルトの名無しさん:2009/04/17(金) 00:26:46
pyshonでいいよ。
902デフォルトの名無しさん:2009/04/17(金) 01:39:51
903デフォルトの名無しさん:2009/04/18(土) 15:51:41
これからはパールの時代がくるのかもな
904デフォルトの名無しさん:2009/04/18(土) 16:28:16
ルビーです
905デフォルトの名無しさん:2009/04/18(土) 18:59:38
ルアだろ、常考
906デフォルトの名無しさん:2009/09/11(金) 06:54:14
>>898
最近はMakefileでもPerlがインストールされているのを前提に
Perlスクリプトが走ったりするのがある。既にshの代替として
機能している部分があるのでなくなりはしないと思う。

逆にpythonやrubyでそんんあのみたことない。
907デフォルトの名無しさん:2009/09/11(金) 07:47:57
>>885
安い人間しか雇わないなら学習コストを考えるとPerlはないな。そういう人はPHPでも使えばいい。

>>889
MooseとかモダンCatalystとかよくわからんのなら買うべき。ただし天然なのか内容が結構ピンボケしてるので、
ある程度理解したら他のソースで情報を補完する必要がある。他に代替となる本がないから「モダンPerl入門」一択なのが現状。

>>891
解決したなら解決方法書け。EUC-JPにはそんな文字ないから文字化けして当たり前。
jcode.pl使ったら解決しましたとかそういうオチじゃないだろうなw

>>895
昨日YAPCで会った米国人が、日本の本屋にPerlの本が異常に少ないのに驚いていたな。

ちなみになる早で1回作って終わりなプロジェクトならPHPでもいいが、保守を続けていくようなプロジェクトはPerl
でかっちり書くのがいい。mixiは置いといて、はてなをPHPで書いてたら今のはてなはなかった。

>>903
Perlのことならもう来てるから。ここんとこPerlの案件激増。PHPの仕事も多いがは糞なのが多く蹴ってる。
908デフォルトの名無しさん:2009/09/15(火) 20:49:32
#!C:\Perl\bin\perl
use encoding "cp932";
binmode STDERR, ':encoding(cp932)';

$key = <STDIN>;
chomp $key;
if ($key ne 'quit') {
&print_randomnum;
} else {
print "owari\n";
exit;
}

sub print_randomnum{
$num = int(rand 1000000);
print "$num\n";
}
__END__

こんな簡単なプログラムなのに期待通りに動作しません。
quitと入力しても乱数が表示されてしまいます。どこがおかしいのか教えてください。
使用しているのはActivePerl 5.8.8 on XP Pro SP2です。
909デフォルトの名無しさん:2009/09/15(火) 21:42:23
>>908
デバッグはしたの?
910デフォルトの名無しさん:2009/09/15(火) 22:26:25
automakeがPerl依存か。
一応Pythonにはsconsがあるが、google以外では見ないな。
911デフォルトの名無しさん:2009/09/16(水) 00:00:11
>>908
use encoding "cp932";
binmode STDERR, ":encoding(cp932)";
の二行消したらなったぞ
912908:2009/09/17(木) 18:08:55
みなさまご親切にありがとうございます。911さまのご指摘をわたくしも確認しました
use encoding "cp932";
binmode STDERR, ":encoding(cp932)"; はウェブ上の入門講座を見て付加しました。
どうしてこの二行がこんなにおそろしい悪夢を招くのかよかったら教えてください。
講座ではシフトJISでコードを書くときに必要と説明していました。
913デフォルトの名無しさん:2009/09/17(木) 21:43:59
>>912
use encoding(cp932);
とした場合、STDINからの入力値を律儀にCRLF(\r\n)にしてくれる。
でもデフォルトの場合、特殊変数$/(デフォルトの改行文字)はLF(\n)なので、
chompした際に、LF(\n)しか消してくれない。

例 入力:AAA(エンターキー)
use encoding(cp932)あり → 'AAA\r\n'
use encoding(cp932)なし → 'AAA\n'
となる。

ちなみに、(binmodeなしで)入出力時に\n←→\r\nになるのは、ActivePerl(Winのみ?)
のIOのデフォルト動作。
914デフォルトの名無しさん:2009/09/17(木) 22:59:17
慣れたひとなら
\r が来ても \r\n が来ても、どっちでも正しく動作するよう
コーディングするもんだよ。
915デフォルトの名無しさん:2009/09/18(金) 00:20:49
>>914
> \r が来ても


そうきますか。
916908:2009/09/18(金) 10:04:45
913さま、ありがとうございました。頭がすっきりしました。
917デフォルトの名無しさん:2009/09/24(木) 02:14:38
>906
LinuxのGUIアプリならPython依存をそこそこ見るが、コマンドラインだと見ないな
918デフォルトの名無しさん:2009/10/07(水) 13:12:18
>>620
pl の関連付けを perl.exe から wperl.exe へ変更
wperl.exe は perl.exe と同じ場所にあります


それか、コマンドプロンプトの初期設定がコンパネから出来たような気がする
919デフォルトの名無しさん:2009/10/30(金) 09:21:36
Perl質問すれなくなった
920デフォルトの名無しさん:2009/11/03(火) 12:52:07
そのくらい自分でたてろよ
921デフォルトの名無しさん:2009/11/03(火) 19:03:21
勉強中の者ですが
例えば2で割り切れない番目の数値を倍にするって事を
やってみたのですが、$countをmap式の中に入れられる物なのでしょうか?
気持ち悪いので入れたいのですがどうすればいいんでしょう?

my @input_digbit = (1,2,4,8,16,32,64);
my $count;

my @result = map {
my $input = $_;
$count += 1;
if ($count % 2) {
$input = $input * 2;
} else {
$input;
}
} @input_digbit;
922デフォルトの名無しさん:2009/11/03(火) 19:51:36
気持ち悪がらずに慣れてください
923デフォルトの名無しさん:2009/11/03(火) 20:07:51
>>921
mapで書けることは大抵foreachでいけるよ
924デフォルトの名無しさん:2009/11/03(火) 20:24:32
use feature 'state' ;
my @h = map { state $c = 0 ; $_ + $c++ } 0 .. 3 ;
925デフォルトの名無しさん:2009/11/04(水) 10:11:01
>>921
mapを2回することになるけど、どうかな?

my @result =
map $_->[0] % 2 ? $_->[1]*2 : $_->[1],
map [ $_ + 1, $input_digbit[$_] ], 0..$#input_digbit;
926デフォルトの名無しさん:2009/11/04(水) 12:31:18
>>921
reduceを使うとか?
ちょっとトリッキー?

use List::Util qw(reduce);

my @result = @{( reduce {
[ @$a, $input_digbit[$b] * ( $b % 2 ? 1 : 2 ) ]
} ([], 0..$#input_digbit) )};
927デフォルトの名無しさん:2009/11/04(水) 14:19:19
よく考えたらこれでいいじゃん
はは

my @result = map $input_digbit[$_] * ($_ % 2 ? 1 : 2), 0..$#input_digbit;
928デフォルトの名無しさん:2009/11/04(水) 14:44:36
なるほどいろいろ書き方あるんですね。

>>927
一粒($_)で二度美味しい。目からウロコでした。
929デフォルトの名無しさん:2009/11/06(金) 02:03:40
やっぱfeature系が入ってくるときれいだよね
//とかstateとか欲しい機能満載
930デフォルトの名無しさん:2009/11/13(金) 12:13:39
///
931デフォルトの名無しさん:2009/11/13(金) 13:40:46
given($hoge){
 say "hoge" when 1;
 say "huga" when 2;
}
みたいなことがしたかったけどwhenは後置できないんだな
932デフォルトの名無しさん:2009/12/04(金) 12:40:06
でもお前ら、偉そうなこと言ってfeatureで一番心待ちにしてるのはsayだろ?な?
すでにuse feature qw/say/;とかsub say {print shift . "\n"} とかしてるやつ手を挙げろ。
933デフォルトの名無しさん:2009/12/04(金) 19:18:26
use 5.010; 派
934デフォルトの名無しさん:2009/12/05(土) 00:04:06
export PERL5OPT=-M5.010


exe 'inoreabbrev <buffer> say '. 'print, "\n";'. "<C-O>F,"
935デフォルトの名無しさん:2010/03/07(日) 23:52:03
( ´・ω・`)
936デフォルトの名無しさん:2010/03/08(月) 00:18:35
(´・ω・`)
937デフォルトの名無しさん:2010/03/08(月) 23:59:23
アクセスした人のポート番号80が空いてるかどうかを調べるにはどうすればいいでしょうか?
REMOTE_PORT関数で調べれると思ったのですがうまくいかなくて・・・
938デフォルトの名無しさん:2010/03/09(火) 08:35:01
>>937
telnetででも80番叩いてみればいいじゃん。
939デフォルトの名無しさん:2010/03/13(土) 13:37:02
(´・ω・`)
940デフォルトの名無しさん:2010/03/14(日) 02:32:42
>>938
スレタイ読めないの?
941デフォルトの名無しさん:2010/03/14(日) 02:39:43
>>937
最近、phpしか触ってないのでperlの方を忘れたけど、phpならこんな感じ。
function is_online($server_ip)
{
    $ip = gethostbyname("{$server_ip}");
    if ($fp = @fsockopen($ip, 80,$un,$sinn,2)) {
        fclose($fp);
        return true;
    } else {
        return false;
    }
}

要するに、ソケットをオープンして成功すれば、そのポートが開いてるってこと。
「perl ソケットオープン」
で検索汁
942デフォルトの名無しさん:2010/03/14(日) 02:41:04
>>941
スレタイ読めないの?
943デフォルトの名無しさん:2010/03/15(月) 07:09:23
アクセスした人のIPアドレスが12.34.56.78 だった場合
お手元のブラウザで

ttp://12.34.56.78/

(頭にtをつけてね)

ってやってサーバーが見つかりませんってエラーがでたら80番空いてない。
何かしら出てきたら空いてる。

これでどうよ。
944デフォルトの名無しさん:2010/03/15(月) 11:21:04
>>940
あぁ、ごめん、perlスレだったw

use LWP::Socket;
my($server, $port) = ('localhost', '80');
my $socket = LWP::Socket->new;
$socket->connect($server, $port);

ただ確かめるだけならこんなんでいいんじゃない?
945デフォルトの名無しさん:2010/03/15(月) 21:52:13
一週間もまえの書き込みに今更・・・
946デフォルトの名無しさん:2010/03/16(火) 03:03:36
open FILE, "<:encoding(cp932)", $hage;
read FILE, my $text, -s FILE;
close FILE;

みたいなスクリプトで cp932 *以外*のファイルを読んでしまうと

cp932 "\xEF" does not map to Unicode at C:\workspace\hoge\fuga.pl line **.

ってワーニングが出ますが、perlスクリプトはそのまま続行してしまいます。
ほんとうは停止してほしいんですけど、
read FILE, my $text, -s FILE or die; としても止まってくれません。
eval { ..... } die if $@; でも止まってくれません。
何か方法があれば教えてください。
947デフォルトの名無しさん:2010/03/16(火) 03:20:17
>>945
local $SIG{__WARN__} = sub{ die @_ } ;
スクリプトの最初の方にでも突っ込んどけば?
948デフォルトの名無しさん:2010/03/16(火) 22:45:43
use PerlIO::encoding;
use Encode qw[ :fallbacks ]; # 定数の import
$PerlIO::encoding::fallback = Encode::DIE_ON_ERR;

open ...

という風に $PerlIO::encoding::fallback に定数を入れてやると
PerlIO で Encode がまずったときの動作を指定することが出来たはず.
定数については Encode の check に書いてあったと思う.
949デフォルトの名無しさん:2010/03/17(水) 04:34:23
>>946
encoding使わないでdecode_utf8すれば良いんじゃない?
出力でencodeし直せばおけー
950デフォルトの名無しさん:2010/04/15(木) 09:11:18
perlccがうまく動きません><

だれかこの部分だけでいいから、Cにしてくれ〜。

/^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/;
951950:2010/04/15(木) 11:15:49
すまん、やっぱいい
952デフォルトの名無しさん:2010/05/24(月) 01:43:38
答えてやって

ttp://anchorage.2ch.net/test/read.cgi/siberia/1235319741/680
> プログラミング初心者です。以下の課題が出されたのですが、まったくわかりません。助言おねがいします。
953デフォルトの名無しさん:2010/05/24(月) 02:30:38
954デフォルトの名無しさん:2010/05/24(月) 05:03:52
>>952
Perl じゃないじゃん
955デフォルトの名無しさん:2010/06/11(金) 13:46:42
         / ̄ ̄\
       / ヽ、. _ノ \
       |  (●)(●) |
       |  (__人__) | ヨナも そうおもう
          |   ` ⌒´  |  
        |        }
        ヽ       }
        人_____ノ"⌒ヽ
      /           \
     /            へ  \
     (  ヽγ⌒)     |  \   \
  ̄ ̄ ̄\__/
956デフォルトの名無しさん:2010/07/21(水) 22:32:12
クライアントがサーバへファイル名を送り、サーバがそれを検索しそのファイルを送るサーバプログラムはどうかけばいいですか?

初歩的な質問で申し訳ないですが、よろしければご教授ください。
957デフォルトの名無しさん:2010/07/22(木) 01:53:34
宿題は自分でやれ
958デフォルトの名無しさん:2010/07/22(木) 22:32:22
>>956
> クライアントがサーバへファイル名を送り、
 ieとかでwww.yahoo.co.jp/index.htmlと入れる。

> サーバがそれを検索しそのファイルを送る
 apacheがindex.htmlの内容を返す。

つまり、apache のソースを提出すればよろし
959デフォルトの名無しさん:2010/08/05(木) 06:17:40
hosyu age
960デフォルトの名無しさん:2010/08/07(土) 12:37:44
use strict; をすり抜けて、use warnings; で引っかかる
事例って、どんなのがあるの?
961デフォルトの名無しさん:2010/08/07(土) 15:03:00
あんいにしゃらいずどばりゅうとか?
962デフォルトの名無しさん:2010/08/07(土) 15:50:22
>>960
暗黙の文字列→数値変換で、文字列が数値以外の文字が含まれてるとき。
> perl -Mstrict -Mwarnings -e 'print int("1a")'
Argument "1a" isn't numeric in int at -e line 1.
1
> perl -Mstrict -e 'print int("1a")'
1
963デフォルトの名無しさん:2010/08/07(土) 17:58:46
>>962
なるほど・・・
じゃああえてそういう文字列食わせたいときとかは
一時無効にする必要があるわけか
964デフォルトの名無しさん:2010/09/15(水) 07:02:48
初歩的な質問ですが…

use libでパスを複数指定するとエラーになったりしますか?
例えば、
hoge.pmが/home/***/perl5とかに入ってて
fuga.pmが/home/***/perl5/i386-freebsdに入ってる時
二つのパスをuse libすると500になります。
かといって片方しかパスを指定しない場合はCan't locateのエラーが出ます。
どうすれば両方のモジュールを使用することが出来るのでしょうか?宜しくお願いします。
965デフォルトの名無しさん:2010/09/15(水) 10:20:36
>>964
それ多分違うところでエラーでてるかContent-Type吐いてないかパーミッションがおかしいかそんなとこだろ
どうにかしてエラー内容特定汁
966デフォルトの名無しさん:2010/09/15(水) 10:56:25
#!/usr/bin/perl
use lib qw(/home/***/extlib/lib/perl5 /home/***/extlib/lib/perl5/i386-freebsd);
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use AnyEvent::HTTP;
use Coro;

print "Content-type: text/html\n\n";
print "hoge";
↑500が出る


/home/***/extlib/lib/perl5/i386-freebsdを残して
/home/***/extlib/lib/perl5の部分だけ切り取り
↑Can't locate AnyEvent/HTTP.pm in @INC (...


/home/***/extlib/lib/perl5を残して
/home/***/extlib/lib/perl5/i386-freebsdの部分だけ切り取り
↑Can't locate loadable object for module Coro::State in @INC (...


/home/***/extlib/lib/perl5/i386-freebsd/auto/Coro/Stateを追加
use AnyEvent::HTTP;があると500になるので削除
/home/***/extlib/lib/perl5だとCoroで500が返るので /home/***/extlib/lib/perl5/i386-freebsdに
↑Can't locate loadable object for module Guard in @INC (...


/home/***/extlib/lib/perl5/i386-freebsd/auto/Guardを追加
↑Can't locate common/sense.pm in @INC (...
967デフォルトの名無しさん:2010/09/15(水) 11:00:35
/home/***/extlib/lib/perl5/commonを追加
↑変わらずCan't locate common/sense.pm in @INC (...が出る

今この状態です。

もちろん
#!/usr/bin/perl
use strict;
use warnings;
print "Content-type: text/html\n\n";
print "hoge";

これはちゃんとhogeが出力されます。
どういった原因が考えられますでしょうか?
2レスに渡り長々とすみません。どうかよろしくお願いします。
968デフォルトの名無しさん:2010/09/16(木) 01:31:37
>>966>>967>>965宛ですすみません><
969デフォルトの名無しさん:2010/09/16(木) 02:31:40
>>966
extlib/ をつくった環境とちがう環境でうごかそうとしたりしてませんか?
/home/***/extlib/lib/perl5/i386-freebsd 以下のディレクトリは環境依存のものがはいっているので、環境がちがうところにコピーしてつかったりはできませんけども。
(ここでいう環境とは OS, アーキテクチャ, -Dusethreads の有無, perl5 のバージョンのことです)
970デフォルトの名無しさん:2010/09/16(木) 02:41:08
>>969
レスありがとうございます!!!
でも俺のレベルだとちょっと理解しきれ無いので、教えてもらった内容に含まれてるキーワードで早速ググッてきます!
971デフォルトの名無しさん:2010/09/16(木) 03:31:29
>>969
解決しました!
環境が違うってのがどういうことかわかりました!#!/usr/bin/perl環境じゃなくてモジュールをインストールしたperl環境じゃないとダメ…みたいなことですよね?
どうもありがとうございました!
972デフォルトの名無しさん:2010/09/25(土) 00:56:56
PerlというかDBIで、fetchが最後まで行って終了した時に、
もう一度先頭行からループし直す時どうすればいいのでしょうか?

カーソルを先頭行に戻すやり方を教えて下さい。
973perl入門者:2010/09/26(日) 10:59:18
すいません。
perlで、以下のような処理を実現したいのですが、
作成された方がいらっしゃいましたら、ご教授お願いします。
(1)「javaのプログラム内の全てのコメントを削除」して表示する
(2)「javaのプログラム内のコメントのみ」を表示する

よろしくお願いします。
974デフォルトの名無しさん:2010/09/26(日) 11:02:53
正規表現使えばいいのでは?
975デフォルトの名無しさん:2010/09/26(日) 11:07:03
Javaのコメントはネスト不可なのか
でも、もしJavaがコメント内の文字列リテラルとかも認識するなら
正規表現だけでは対応できないよ、多分
976デフォルトの名無しさん:2010/09/26(日) 11:11:03
とりあえず正規表現を使わないなら
行コメントは簡単だろうけど、ブロックコメントは
コメントの中にいるかどうかっていう状態変数を作って
読みこみながら処理していけばいい
(コメントの中にいなくて/*にであったらコメントに入る)
(コメントの中にいて*/に出会ったとき、コメントの外に出る、みたいな感じで)

Javaがコメント内の文字列も認識するなら
コメントの中の文字列の中にいるっていう状態変数も作る

もっと複雑なことをする予定ならパーサを作るほうが楽
977デフォルトの名無しさん:2010/09/26(日) 11:13:17
注意すべきは文字列リテラルの中にコメントと同等のシーケンスが入っていた場合。
978デフォルトの名無しさん:2010/09/26(日) 17:38:11
System.out.println("/*うんこ野郎!*/"); /*どうだ参ったか!*/
979デフォルトの名無しさん:2010/09/26(日) 20:50:19
Parse::RecDescent
で、文字列とコメントとそれ以外を定義
980デフォルトの名無しさん:2010/09/26(日) 21:58:05
このGrammarは、Javaでもそのまま使えるんじゃね?
http://www.ibm.com/developerworks/jp/linux/library/l-perl-parsing/stat-comments-dos.pl.txt
981デフォルトの名無しさん
ふーん