1 名前:nobodyさん mailto:sage [2007/09/16(日) 19:49:43 ID:???] Perlのコーディングで困ってる人のスレです。 【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >2 以降 前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/ 過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
526 名前:nobodyさん mailto:sage [2007/11/10(土) 11:03:28 ID:???] >>524 はい。 www.google.co.jp/search?q=lzh+%E8%A7%A3%E5%87%8D+perl&ie=utf-8&oe=utf-8
527 名前:nobodyさん mailto:sage [2007/11/11(日) 02:16:45 ID:???] 2chみたいに携帯から固有のIDを作りたいんですが どうすればいいんでしょうか。
528 名前:nobodyさん mailto:sage [2007/11/11(日) 07:14:50 ID:???] >>527 i-mode:UTN EZweb:HTTP_X_UP_SUBNO Y!:UA
529 名前:nobodyさん [2007/11/11(日) 14:32:10 ID:4iiY3aOI] 正規表現について質問です。 urlからファイル名だけを取り出したいです。 例えば、$urlという変数に下の3つのurlがあった場合は hoge1.html, hoge2.html, hoge3.htmlを取り出したいです。 localhost/hoge1/hoge1.html localhost/hoge1/hoge11/hoge111/hoge2.html localhost/hoge2/hoge21/hoge3.html 下のように自分でやってみたのですが、localhostの前の/から取得してしまいます。 if( $url =~ /\/(.*\.html)$/ ){ print $1 . "\n"; } どうすればやりたい事ができますか? 教えてください、お願いします。
530 名前:nobodyさん mailto:sage [2007/11/11(日) 14:35:11 ID:???] ワイルドカードにすべき部分は「全ての文字」じゃない、「/を除いた全ての文字」だ。 あ、とりあえず ?xxx=hoge とかの引数は考えなくていいよね?
531 名前:529 mailto:sage [2007/11/11(日) 14:47:19 ID:???] >>530 レス有難うございます。 >ワイルドカードにすべき部分は「全ての文字」じゃない、「/を除いた全ての文字」だ。 なるほど。でも頭では理解できてもそれをコーディングするとなると・・・ .*の部分を弄ればいいのかなぁ。 >あ、とりあえず ?xxx=hoge とかの引数は考えなくていいよね? はい、このパターンは今回ありえないっす。
532 名前:529 mailto:sage [2007/11/11(日) 14:58:10 ID:???] 条件文を下のコーディングに変更したらできました。 if( $url =~ /\/([^\/]*\.lzh)$/ ){ 正規表現すげー >>530 さんアドバイスありがとうございました。
533 名前:nobodyさん mailto:sage [2007/11/12(月) 08:03:25 ID:???] .*?も覚えたらいいとおも
534 名前:nobodyさん [2007/11/12(月) 16:33:29 ID:XNEEDQVz] そのファイルがバイナリなのかテキスト(shift-jis,euc,utf8)なのかを判断するにはどのようにしたら良いのでしょうか? 最初、linuxの fileコマンドを使用していたのですが誤認識がよくあり使えません。 バイナリなのかテキストなのかだけ分かればいいのですがperlでそれを行うにはどのようにしたら良いのでしょうか?
535 名前:nobodyさん mailto:sage [2007/11/12(月) 16:42:39 ID:???] ファイルテスト演算子
536 名前:nobodyさん [2007/11/12(月) 18:17:28 ID:XNEEDQVz] >>535 有難う御座います。 試してみましたが、EUCだったり10文字程度のcp932などの場合に誤認識するようです。
537 名前:nobodyさん mailto:sage [2007/11/12(月) 18:33:52 ID:???] \0が含まれてればバイナリでいいんでないの それ以外だと各文字コードの仕様を調べて 全データがそれに矛盾してないか判断するしかないと思
538 名前:nobodyさん mailto:sage [2007/11/12(月) 18:39:12 ID:???] 正規表現使えばいいじゃない
539 名前:nobody [2007/11/13(火) 03:52:36 ID:fKqfq45H] ttp://www.jpopfan.co.jp/uranai/uranai000.htm 上のサイトのようなゲームをperlで作りたいと思っています。 htmlのみでも十分なゲームだとは思いますが、あえてCGIゲームとして作りたいです。 (学校の授業の自由課題であるので・・・) 一応以下のようにhtmlは作ってみました。 <html> 省略 <body> <h1>オーケストラ楽器別診断</h1> <p>次の質問にお答えください♪</p> <form action="/nussknac/cgi-bin/kadai.cgi" method="post"> <dl><dt>お名前</dt> <dd><input type="text" name="name" value=""></dd><br> <dt>Q1. あなたはプライドが高いほうですか?</dt> <dd><ul> <li><input type="radio" name="answer1" value="Yes" checked>Yes</li> <li><input type="radio" name="answer1" value="No">No</li> </ul></dd></dl> <p><input type="submit" name="send1" value="送信"><br></p> </form></body></html>
540 名前:nobody [2007/11/13(火) 03:57:04 ID:fKqfq45H] 539の続きです。 HTMLのフォームから情報をCGIに送り、最初の質問に対してYesならAの質問、NoならBの質問・・・というように 答えによって質問を分岐させるように作りたいです。 if文でひたすら分岐するというイメージはありますが、どうすれば、送信ボタンを押した時に次の質問ページにリンクさせる事ができるかが分かりません。 質問ページは一つ一つ作りたいです。 よろしくお願いします。
541 名前:nobodyさん mailto:sage [2007/11/13(火) 04:18:50 ID:???] そういうアルゴリズムも含めて課題になってるんじゃねーのか・・・まぁいいけどさ。 で、htmlはともかくどこまでperl書いたのよ。まさか1行も書かずに相談しにきてるわけじゃあるまい?
542 名前:nobodyさん mailto:sage [2007/11/13(火) 06:54:14 ID:???] 何日か前に別のスレでも見たけど、ここで聞いてて課題間に合うの?
543 名前:nobodyさん mailto:sage [2007/11/13(火) 08:58:39 ID:???] あみだくじでいいのか、選択によってポイントがたまってその結果で振り分けられるのか。 色々ロジックはあると思うけど、そこら辺はどうするのかな
544 名前:nobodyさん mailto:sage [2007/11/13(火) 09:17:32 ID:???] >542 提出日まで1〜2週間とかなら大丈夫じゃない? その昔、C言語の授業があって、その授業終了直後に提出したら怒られたことがあったなあ(笑) ごめん、確かに授業聞いてませんでした。
545 名前:nobodyさん mailto:sage [2007/11/13(火) 09:19:51 ID:???] あみだくじでいいなら、 <li><input type="radio" name="answer" value="Aの質問のURL" checked>Yes</li> <li><input type="radio" name="answer" value="Bの質問のURL">No</li> ってして、 print "Location: answerの値\n\n"; でリダイレクトさせていけばいいだけでは?
546 名前:nobodyさん mailto:sage [2007/11/13(火) 10:36:02 ID:???] HTMLでおk
547 名前:nobodyさん mailto:sage [2007/11/13(火) 11:10:10 ID:???] リンク元のURLに%??%??〜が含まれてる場合に、その文字をデコードしてUTF-8として表示しようとしています。 元の文字コードがUTF-8のときは問題なく表示できるのですが、 文字コードの判別を含めてやる場合どうやったらいいのでしょうか? Perlのバージョンは5ですが、プロバイダ(@nifty)のサーバーのため標準モジュールを使用できません。 いきなり変換が難しいならUTF-8か否かを判別できれば、 UTF-8の場合→直デコード UTF-8でない場合→直デコード→jcode.plで変換 でいいのかもと考えているのですが、UTF-8か否かの判別法がわかりません。 よろしくお願いします。
548 名前:nobodyさん [2007/11/13(火) 15:19:48 ID:lcS1D/Cp] 539です。 一応perlでは以下のように作りました。 #!/usr/local/bin/perl use CGI; $query = new CGI; $q1 = $query->param('answer1'); if ($q1 eq Yes) { open(F, ">>q2.html"); } else { open(F, ">>q3.html"); } でもこれだとエラーが出てしまいます。 どのように直せばいいでしょうか。 リンクのさせ方など教えて下さい。 課題提出は12月までです。 違うスレには書いていないので私ではないです。
549 名前:nobodyさん mailto:sage [2007/11/13(火) 15:34:47 ID:???] use constant Yes => 'Yes';
550 名前:nobodyさん mailto:sage [2007/11/13(火) 15:56:31 ID:???] 課題は自分でやれwww
551 名前:nobodyさん mailto:sage [2007/11/13(火) 16:29:42 ID:???] >>54 こんな感じはどうよ。適当に書いたからちゃんと動くかどうか知らんけど。 #!/usr/bin/perl use strict; use warnings; use CGI; use FileHandle; use File::Spec; my $cgi = CGI->new; my $fh = FileHandle->new; my $html_dir = '/path/to/html/dir'; my $output = $cgi->header( -type => 'text/html' ); my $fn = q{}; if ( $cgi->param('answer1') eq 'Yes' ) { $fn = 'q2.html'; } else { $fn = 'q3.html'; } $fh->open( File::Spec->catfile( $html_dir, 'q2.html' ) '<'); my $data = do { local $/; <$fh> }; $fh->close; $output .= $data; print $output;
552 名前:nobodyさん mailto:sage [2007/11/13(火) 16:30:23 ID:???] レス番ミスった。 誤 >>54 正 >>548
553 名前:nobodyさん mailto:sage [2007/11/13(火) 16:31:27 ID:???] さらに訂正。 誤 $fh->open( File::Spec->catfile( $html_dir, 'q2.html' ) '<'); 正 $fh->open( File::Spec->catfile( $html_dir, $fn ) '<');
554 名前:nobodyさん [2007/11/17(土) 14:33:33 ID:GlJQ98hk] oshiete.new-akiba.com/archives/2007/01/webarchivedlwarrick.html ここを見ながらコマンドプロンプトを操作しているのですが ダウンロードされる段階まで行っても Can't locate strict.pm in @INC (@INC contents: .) at C:\Program Files \warrick\warrick.pl line8. BEGIN failed--compilairion aborted at C:\Program Files \warrick\warrick.pl line8. と出ます。 意味もそもそも分からないのですが、解決方法教えてください
555 名前:nobodyさん mailto:sage [2007/11/17(土) 15:24:40 ID:???] >>554 エラーの原因は@INCが空になってるから。なんでそうなってるのかは知らん。 ActivePerlを入れ直してみたら? あとここはコーディングスレだからスレ違いだと思わなくもない。
556 名前:nobodyさん mailto:sage [2007/11/17(土) 20:14:46 ID:???] >>555 最新版入れてみたけど同じでした 質問スレいってきます
557 名前:nobodyさん mailto:sage [2007/11/17(土) 20:58:37 ID:???] >>にアンカを3つだけつけたいんだけど、これだと同じとこにリンクをかけてしまいます。 どうすればいいんでしょうか。 for($i=0;$i<3;$i++) { $str=~s/>>[0-9]{0,10}[-]{0,1}[0-9]{0,10}/<a href="$_[1]p=$&">$&<\/a>/; $str=~s/p=>>/p=/; }
558 名前:nobodyさん mailto:sage [2007/11/17(土) 22:00:49 ID:???] $i = 0; $buf =~ s/(>>\d+)/$i++ < 3 ? "LINK:$+" : $+/egs;
559 名前:556 mailto:sage [2007/11/17(土) 22:23:56 ID:???] >>558 ありがとうございます。 そんな書き方知りませんでした。
560 名前:557 mailto:sage [2007/11/17(土) 22:26:54 ID:???] >>559 556じゃなくて557でした
561 名前:nobodyさん mailto:sage [2007/11/18(日) 19:50:49 ID:???] 自作モジュールをロードするときに、BEGINブロックで@INCに追加してからBEGINの外でuseするのは外道
562 名前:561 mailto:sage [2007/11/18(日) 19:51:25 ID:???] ↑ 「ですか?」が抜けた。 すまぬ
563 名前:nobodyさん mailto:sage [2007/11/18(日) 20:25:36 ID:???] >>561-562 外道かどうか知らんが、普通は use lib でしょ。
564 名前:nobodyさん [2007/11/19(月) 06:13:08 ID:s0DcKkZM] これからプログラムをやりたいと思ってます。 いまからやるならperlは覚えたほうがいいですか?
565 名前:nobodyさん mailto:sage [2007/11/19(月) 06:19:02 ID:???] PHPでいいよ
566 名前:561 mailto:sage [2007/11/19(月) 08:54:57 ID:???] >>563 ありがt
567 名前:nobodyさん [2007/11/20(火) 11:38:30 ID:PLctc9ni] 多重起動の禁止はできたが、解放がうまくいかない。 どこが悪いか教えてください。 #登録&多重起動禁止 use Win32::API; use Win32::Mutex; my $mutex = Win32::API->new("kernel32","CreateMutex",["N", "N", "P"], "N"); die "二重起動" if(Win32::Mutex->open('TestProgram123')); $mutex=Win32::Mutex->new(1, 'TestProgram123'); #解放 my $releacemutex = Win32::API->new("kernel32","ReleaseMutex",["N"], "N"); $releacemutex->call($mutex);
568 名前:576 [2007/11/20(火) 14:43:38 ID:PLctc9ni] 自己解決 Win32-API使わなくてもできるのねぇ
569 名前:nobodyさん mailto:sage [2007/11/21(水) 03:27:48 ID:???] むしろ何の為のラッパーだよ
570 名前:nobodyさん [2007/11/23(金) 21:52:32 ID:BH2PwYj+] 質問失礼します。 AとBの文字があるとき、文字列の中のBAを全てABにしたいときはどのような置換をすればいいのでしょうか? 例えば、 $s = "AABABABBBA"; と文字列があったら、 $s = "AAAAABBBBB"; にしたいのです。 $s =~ s/BA/AB/g;とすると、置換後を判定してくれないので、困ってます……
571 名前:nobodyさん mailto:sage [2007/11/23(金) 21:58:25 ID:???] >>570 たとえば。 $ perl -e '$s = "AABABABBBA";while($s=~s/BA/AB/g){}print $s;'
572 名前:nobodyさん mailto:sage [2007/11/23(金) 22:00:18 ID:???] >>570 その場合、これ以上置換できなくなるまで「$s =~ s/BA/AB/g;」の処理を行わなければならない。すなわち、ループである。 s/BA/AB/g;は、置換を行った回数を返す。つまり、0を返すまで処理を継続したいのだから、while文が使える。 したがって、次のようになる。 while($s =~ s/BA/AB/g;){} whileのあとの{}の中に何も入っていないが、これでお望みどおり動くようである。
573 名前: ◆TWARamEjuA mailto:sage [2007/11/23(金) 22:31:04 ID:??? BE:6970188-2BP(6825)] sortって云う手もあるよなぁ♪ print join "", sort split "", "AABBABABBBABAABBAABABABABA";
574 名前:570 mailto:sage [2007/11/23(金) 22:36:47 ID:???] >>571-573 返信ありがとうございます。 無事whileを使う方法で出来ました。
575 名前:nobodyさん mailto:sage [2007/11/24(土) 07:56:01 ID:???] >>574 遅レス。 他の文字が存在しないと云う条件下なら、素直に文字数カウントするって手もある perl -le 'my $s = "atataaattttatatat" ; print "a" x ( $s =~ s/a/a/g ) . "t" x ( $s =~ s/t/t/g ) ;' ま、他の文字が存在してても外側ループ一個つけるだけだけどね。 蛇足だと思ったんだが、、、、
576 名前:nobodyさん mailto:sage [2007/11/25(日) 15:53:28 ID:???] ちょっと分からないので質問させてもらいます。 手作りで掲示板みたいなのを作ってるんですけど Location:で二重投稿を禁止したくて書いたんですが投稿したあとにLocation:って文字が表示されて飛ばないんですけど なんでしょうか? 普通なら飛ぶのに飛びません・・・。 誰か分かる方が居れば教えてください。
577 名前:nobodyさん mailto:sage [2007/11/25(日) 16:07:12 ID:???] >>576 content-typeの前に書いてみ
578 名前:nobodyさん mailto:sage [2007/11/25(日) 16:35:27 ID:???] >>577 出来ました。 ですが書き込みがされなくなりました・・・。
579 名前:nobodyさん mailto:sage [2007/11/25(日) 17:55:01 ID:???] そもそもがどんな仕組み何だかわかんねーと答えようがねーよw こっちはエスパーじゃないんだからさw
580 名前:nobodyさん mailto:sage [2007/11/25(日) 18:30:55 ID:???] >>579 www.uploda.org/uporg1129660.txt これなんですが上手く動作しなくて・・・。
581 名前:nobodyさん mailto:sage [2007/11/25(日) 18:47:07 ID:???] 一番最初に print "Content-type: text/html\n\n"; # データ形式 を書いてるのが不味いような気がするのは気のせいかな。
582 名前:nobodyさん mailto:sage [2007/11/25(日) 18:47:57 ID:???] >>581 他のところに置いたりすると上手く動作しないんです・・・。
583 名前:nobodyさん mailto:sage [2007/11/25(日) 18:50:17 ID:???] あと、$locationって変数、どこで使ってるんだろ。
584 名前:nobodyさん mailto:sage [2007/11/25(日) 18:55:24 ID:???] 勉強し直しておいで。
585 名前:nobodyさん mailto:sage [2007/11/25(日) 18:55:39 ID:???] あ、それは書き忘れましたがKENTWEBさんのところのをちょっと借りたやつです。 # リロード if ($location) { if ($ENV{'PERLXS'} eq "PerlIS") { print "HTTP/1.0 302 Temporary Redirection\r\n"; print "Content-type: text/html\n"; } print "Location: $location?\n\n"; exit; } これがサブルーチンのwriteの最後に置いてました。
586 名前:nobodyさん mailto:sage [2007/11/25(日) 18:56:09 ID:???] とりあえずヒントは、 ・Location: はHTTPヘッダに出力する ・ヘッダとボディの区切りは空行で示す
587 名前:nobodyさん mailto:sage [2007/11/25(日) 19:08:15 ID:???] 前も書いたけど、kentwebのってデリミタに<>使うの好きだねえ。データがでかくなってくると、 2バイトも勿体無いと思う。
588 名前:nobodyさん mailto:sage [2007/11/25(日) 19:10:08 ID:???] >586 難しそうですが頑張ってみます。
589 名前:nobodyさん mailto:sage [2007/11/25(日) 21:12:48 ID:???] 2バイトさえ気になるような人はデミリタに何使うんだろ。
590 名前:nobodyさん mailto:sage [2007/11/25(日) 21:13:37 ID:???] デリミタねw
591 名前:nobodyさん mailto:sage [2007/11/25(日) 21:51:10 ID:???] タブ?
592 名前:nobodyさん mailto:sage [2007/11/25(日) 21:57:24 ID:???] 俺はタブ。excelにも貼るだけで、データやりとりできるし。
593 名前:nobodyさん mailto:sage [2007/11/26(月) 01:21:50 ID:???] 俺は適当に,にしてた
594 名前:nobodyさん mailto:sage [2007/11/26(月) 09:34:29 ID:???] >>593 CGIでHTMLを吐く前提なら、 , を入力されると面倒なことになるんだよな。 < > なら < > ってできてしまうからいいんだけど。
595 名前:nobodyさん mailto:sage [2007/11/26(月) 09:35:03 ID:???] ↑失礼 < > なら < > ってできてしまうからいいんだけど。
596 名前:nobodyさん mailto:sage [2007/11/26(月) 17:00:07 ID:???] , は,でいいんじゃね?俺もタブ使うけど
597 名前:nobodyさん mailto:sage [2007/11/26(月) 19:49:54 ID:???] ちょいと質問を。 今ソフトバンククリエイティブのCGI/perl ハンドブック第3版 のCGIサンプルで掲示板を作ったのですが掲示板にメッセージが書き込まれなかったらエラーを出そうと 思って四苦八苦しているんですがperl6はよく分からなく苦戦しています。 誰かこの本を持っていて、分かる方がいればご教授お願いします。
598 名前:nobodyさん mailto:sage [2007/11/26(月) 20:23:48 ID:???] >>597 その本持ってないから知らないけど、本当にperl6ですか? #このスレはご教授ってOKなんだっけ?
599 名前:nobodyさん mailto:sage [2007/11/26(月) 21:19:36 ID:???] こんばんは。 LWPで、現在取得しているURLの情報を参照する方法ってあるでしょうか。 ttp://www.xxx.ne.jp というURLを取得したときに、いくつかリダイレクトされて、 ttp://www.xxx.ne.jp/cgi-bin/test.cgi?id=aaaa&pass=bbbb こんな感じのURLになってるのですが、この ? 以降の情報を取得したいのです。 $responoser->base では、 ? より前のURLしか返してくれません。 教えてください。
600 名前:nobodyさん mailto:sage [2007/11/26(月) 23:26:29 ID:???] >>598 その使い方も間違ってない以上、突っ込む方が野暮or空気が読めないでおk
601 名前:nobodyさん mailto:sage [2007/11/27(火) 03:23:29 ID:???] 質問します 他のサーバー上のテキストファイルを読み込ませたいのですがopen関数ではできないんでしょうか?
602 名前:nobodyさん mailto:sage [2007/11/27(火) 03:33:26 ID:???] できない
603 名前:nobodyさん mailto:sage [2007/11/27(火) 03:49:49 ID:???] >>601 あんたすげーな
604 名前:nobodyさん mailto:sage [2007/11/27(火) 06:16:45 ID:???] 童貞で40歳まで行ったら妖精になれるよりすごい発想
605 名前:nobodyさん mailto:sage [2007/11/27(火) 07:36:33 ID:???] ただ、PHPでは同じような方法でできるこの不思議。
606 名前:nobodyさん mailto:sage [2007/11/27(火) 08:12:36 ID:???] だれか599についての回答を・・・
607 名前:nobodyさん mailto:sage [2007/11/27(火) 09:01:18 ID:???] >>599 =606 リダイレクトされるためには適切なHTTPヘッダが返っているはずだからそれ調べる。
608 名前:nobodyさん mailto:sage [2007/11/27(火) 11:02:47 ID:???] >>599 >>606 うちの環境では、3回リダイレクトを経て、?&引数がもっさりついたurlに飛ばしても、 print $response->base(); で、引数(’?’以降%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8Aとか)がついた URLを表示できたけど・・・。 ActivePerl 5.8.8-build822(XPsp2) LWP/5.808
609 名前:nobodyさん mailto:sage [2007/11/28(水) 05:14:00 ID:???] ブログの自動投稿プログラムを作りたいと思ってるんですが、大まかな仕組みも分からず困っています。 どなたかご教授願えませんか? ちなみに、用途はバーチャルな人間の日記を作りたいと思っています。 日記を出力するアルゴリズムは別に用意しますので、 それをブログの投稿画面に自動でログインして書き込むようにしたいのです。 ローカルからでも構わないのですが、 できれば安いレンタルサーバーから行えれば良いなと思ってます。 検索で『自動投稿』としたらたくさん見つかったのですが、どれもアフィリエイター用のもので、 結構値段も高いですし、記事を予め用意しないとダメなので私がしたいようには出来そうにありません。
610 名前:609 [2007/11/28(水) 05:16:24 ID:onMmaiK+] よろしくお願い申し上げます。m(__)m
611 名前:nobodyさん mailto:sage [2007/11/28(水) 05:24:30 ID:???] ひょっとしたら、atom っていうのを勉強したら道が開けるんですか?
612 名前:nobodyさん mailto:sage [2007/11/28(水) 05:26:27 ID:???] 日記を出力するアルゴリズム ←これがきになる
613 名前:nobodyさん mailto:sage [2007/11/28(水) 09:39:10 ID:???] 日記を出力するアルゴリズム ←ってのはもしかして勝手に日記を書いてくれるプログラムだろうか
614 名前:nobodyさん mailto:sage [2007/11/28(水) 09:48:03 ID:???] >>609 △▲ WebProg 初心者の質問 Part16 ▼▽ pc11.2ch.net/test/read.cgi/php/1187729623/
615 名前:nobodyさん mailto:sage [2007/11/28(水) 13:29:43 ID:???] 日記を出力するアルゴリズムを書ける人ならそれぐらい自分でできそうだけど。 荒らしスクリプトにするつもりじゃないなら、その日記を出力するアルゴリズムの 元ネタの場所を公開すれば信用が得られるかも。
616 名前:nobodyさん mailto:sage [2007/11/29(木) 03:01:28 ID:???] そういうのは荒らしやスパムに使われる可能性が高いから、自分でやりな。
617 名前:609 [2007/11/29(木) 18:18:55 ID:fn44RAXr] >>612-615 日記のアルゴリズムが完成したわけではありません ただそっちは、大したものじゃないにしても何とかなりそうなんです。 一方、自動投稿の方は何から手を付けていいのかすら分からない状態でしたので質問させてもらいました >>616 やっぱりそうですか わかりました。何とか頑張ってみます 因みにスパム行為をするつもりは毛頭ありませんが、確かに見ようによってはそう映る可能性も否定できないですね。 あくまでも普通の人間っぽい挙動にしたいと思っているので、投稿の数も一日で多くて3通程度、少ないときは三日ぐらい更新しないような動きを考えてました。 とにかく自分で何とかしないとダメみたいですね ご迷惑おかけ致しました
618 名前:nobodyさん mailto:sage [2007/11/29(木) 18:50:54 ID:???] search.cpan.org/perldoc?XML::Atom::Client
619 名前:nobodyさん mailto:sage [2007/11/29(木) 18:56:46 ID:???] >>617 う〜む、どう考えてもやっぱりその 日記を出力するアルゴリズム ってのが、自動投稿するスクリプトより遥かに高レベルのような気がするが・・・・。 まあいいや、ヒントだけ。 WWW::Mechanize オススメ。 内容や使い方は、自分で調べてちょ。
620 名前:609 mailto:sage [2007/11/30(金) 00:45:15 ID:???] >>618 ,619 ありがとうございました。 参考にさせていただきます。 今いろいろ資料を調べたり、さっき図書館で借りてきた Webクライアントプログラミングって言う本(めちゃふるいですがw) を読んだりしてます。 HTTP通信などは一度もやったことがないので、 LWPあたりから勉強したほうがよさそうな、 そんな気がしてる今日この頃。 AtomとかXML-RPCとかの資料にまではたどり着けたのですが、 そこに平然と書かれている GETだのPOSTだのという表現についていけない状況です。 あれを全部 perl のコードに解釈するための知識がないのです。 というわけで、だいぶ時間掛かりそうですが、 こつこつやっていこうかなと。 もう少し進歩して、またわからないことがあったら、 ここか>>614 さんが教えてくれたスレにでも出没いたします。 では、ごきげんよう皆様。
621 名前:609 mailto:sage [2007/11/30(金) 03:34:24 ID:???] (´・ω・`) ノシ やっとこさ、livedoor から餌を頂戴できました なんだか、嬉しくて涙が出てきた 。・+゜(つД`)゜+・。 みんなありがと
622 名前:609 mailto:sage [2007/11/30(金) 03:51:57 ID:???] >>619 Mechanize というのを完全に誤解してたようです XML-RPCとかAtomPubなどとはまったく違うんですね。 なんというか、禁断の・・・いや、貴重な情報ありがとうございました。
623 名前:nobodyさん mailto:sage [2007/11/30(金) 12:46:37 ID:???] フォームメールに入力された内容を半角→全角に変換するプログラムがわかりません。 $str = '$mystr'; $kigou ='@!"#$%&\'()=-^\\|{}:;+*?_/<>'; require 'jcode.pl'; if ($FORM{'namae'} ne ''){ $mystr = $FORM{'namae'}; &hankaku; } sub hankaku{ &Jcode'convert(*str,'euc'); if($str =~ /^[0-9]{7,11}$/){ &jcode'tr(*str,'0-9A-Za-z','0-9A-Za-z'); }elsif ($str =~ /\x8E/) { &jcode'h2z_euc(*str); }else ($str =~ /$kigou/){ &jcode'tr(*str,'@!”#$%&’()=−^¥|{}:;+*?_/<>','@!"#$%&\'()=-^\\|{}:;+*?_/<>'); } &Jcode'convert(*str,'sjis'); $str = $value; exit 0; } 1度eucに変換してからと考えたんですが。
624 名前:nobodyさん mailto:sage [2007/11/30(金) 13:06:38 ID:???] >>623 Unicode::Japanese
625 名前:nobodyさん [2007/11/30(金) 13:27:37 ID:7wito75u] 2007/11/30-2007/12/01,00-24,[動作させる値] のようなdatファイルを下記でブランチさせると、指定範囲外だと判定されてしまうようなのです。 改善するにはどこを直せば良いでしょうか・・・最後の日付部分の比較だけで判定されてる・・? localtime(time)取得やDAT読み込みは大丈夫っぽいです。 foreach $sdat(@set){ next, if $sdat eq "\n"; @sdat = split(/,/,$sdat); @ddat = split(/\-/,$sdat[0]); @d1dat = split(/\//,$ddat[0]); @d2dat = split(/\//,$ddat[1]); @tdat = split(/\-/,$sdat[1]); if( ($ddat[1] eq '' || ($ddat[1] ne '' && $d2dat[0] eq '*' || $d2dat[0] >= $year)) &&($ddat[1] eq '' || ($ddat[1] ne '' && $d2dat[1] eq '*' || $d2dat[1] >= $mon)) &&($ddat[1] eq '' || ($ddat[1] ne '' && $d2dat[2] eq '*' || $d2dat[2] >= $mday)) &&($d1dat[0] eq '*' || ($ddat[1] ne '' && $d1dat[0] <= $year) || ($ddat[1] eq '' && $d1dat[0] == $year)) &&($d1dat[1] eq '*' || ($ddat[1] ne '' && $d1dat[1] <= $mon) || ($ddat[1] eq '' && $d1dat[1] == $mon)) &&($d1dat[2] eq '*' || ($ddat[1] ne '' && $d1dat[2] <= $mday) || ($ddat[1] eq '' && $d1dat[2] == $mday)) &&($sdat[1] eq '*' || ($tdat[0] <= $hour && $hour <= $tdat[1])) ){ chomp $sdat; $url = $sdat[2]; last; } }
626 名前:nobodyさん mailto:sage [2007/11/30(金) 13:32:25 ID:???] ひどすぎわろた