1 名前:nobodyさん mailto:sage [2008/03/03(月) 05:07:32 ID:???] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 Perl使いが優しくコメントを返しますが、 お礼はPerlの布教と初心者の救済をお願いします。
61 名前:nobodyさん mailto:sage [2008/04/06(日) 14:25:12 ID:???] こんにちは>>57 です >>59 さんレスありがとうございます わかりました この先どんな問題が出てくるのか予想も出来ないので取り合えず自分でできるように頑張ってみます 2chで聞く時に「質問者は環境とやりたいことを出来るだけ詳しく」ということなので やりたいことを詳しく書く、そしたら解答してくれる前に新しい問題点を発見して「質問内容を変更します」って繰り返してしまいました 解答してくれる方にはご迷惑をお掛けして反省しています perlを始めて1週間、変数について勉強しているとこです スカラ変数を2個にして配列変数0、1とすればいいのかなって思いました それで正解なのかはわかりませんが取り合えずタイトル以外にもう1個スカラ変数を増やして読み書きできる事を目指してみます ありがとうございました
62 名前:nobodyさん [2008/04/06(日) 22:29:28 ID:nA18XPcw] perlの正規表現マッチングで、 htmlを読み込んだ$contentsから <li>〜<li>の〜部分を抜き出したいと考えがえています。 for( my $i=1; $i <= 20; $i++){ if( $contents =~ m,^<li>(.*)</li>(.*),g ){ $block = $1; $contents = $2; } } この場合、i=1の時、 最後<li>のマッチングにかかる部分しか摘出できず、 うまい正規表現がないかと色々調べては回ったのですが、 ハマってしまいました。 $contensの初めからマッチングするようなコードを ご教授お願いします。
63 名前:47 mailto:sage [2008/04/07(月) 07:06:59 ID:???] 誰向けでもなく一応のフォロー。 my $cnt = 0 ; while(<>){ print $cnt . q{ } . $_ if $cnt != 0 or m{<span>}i ; $cnt += m{<span>}ig ; $cnt -= m{</span>}ig ; } >>62 my @res = $contents =~ m{<li>(.*?)</li>}gs ;
64 名前:nobodyさん mailto:sage [2008/04/07(月) 14:14:44 ID:???] >>47 さん せっかく教えてくれたんだけど 今の私には理解できていないんだ(;´д⊂ヽ 後に参考になるかもしれないのでメモして大切に保存しておくよ 活用できなくて申し訳ない ほんとにありがと
65 名前:nobodyさん mailto:sage [2008/04/07(月) 19:50:52 ID:???] 動画ファイル(youtube.flv)のハッシュ(SHA-1)を求める方法を教えてください。
66 名前:65 mailto:sage [2008/04/07(月) 20:57:10 ID:???] あれからずっとググってやっと見つけました。 ありがとうございました。
67 名前:nobodyさん mailto:sage [2008/04/08(火) 00:48:13 ID:???] perl/cgi逆引き大全600って本を1ページ目から読んでるんだけど スカラと配列とハッシュがよくわかんない スカラは値$ 配列@は複数のスカラ値$ @があればスカラ変数$はいらないのでは? @が複数のスカラ値と記載してあるんだけど @へ複数の変数を入力する方法は記載されていないここが知りたいのに見当たらないね 最終的にソートする予定があればキーと値%のハュシュにしておいた方がいいのかな? ソーと機能の所読んだらキーでソートするって書いてある ハッシュをいくつも作って複数のハッシュを並べ替えてから書き込み ってのが最終目標にすればいいのかな 39ページ目にして出てきたqwとはなんだろか?? 目次にもTips検索にもない ネットで調べたら qw シングルクォートで囲んだ文字列をスペースで split するのと同様です 命令を命令で説明しているところばかりだsplitってわかんない splitを調べたsplitを使ってデータを分割と記載されている ・・・ qwはデータを分割するための命令なのか?? なんで日本語で解説しないんだ 先日もわかんない単語があった ネットで調べたストリングと一緒と説明されていた ストリング??ギターの弦か??ワケワカメ
68 名前:nobodyさん mailto:sage [2008/04/08(火) 05:45:29 ID:???] Perlの前に日本語から勉強しなおせ
69 名前:nobodyさん mailto:sage [2008/04/08(火) 06:18:13 ID:???] お前もな
70 名前:nobodyさん mailto:sage [2008/04/08(火) 06:31:50 ID:???] ここが一番わかりやすかった perlのアレコレ ttp://furyo.on-air.ne.jp/linux/perl.html 私は10日ほど前からperlに興味を持ちお勉強してたんだよね perl解説本3冊 ググルこと100サイト 初心者用ばかり選んでいるのにわかりにくいね 「簡単」「入門」「初級」で探してみるんだけど 中身は自分の思い出すためのメモ帳だね 全然わかんない 命令の説明に命令使って「入門」はないだろw 一般社会なら後進指導の立場には向いていないね 命令を説明するのに「○○はこんな感じです」と その下にサンプル書いているだけではわかんね 私が選んだサイトは文脈からして10年くらいは経っているのではないかと思うがわかりやすいね ヘンテコな広告も一切なくて集中して見れたな 「perlのアレコレ」管理人さんここを見ることはないかもしれないけど ありがとう。
71 名前:nobodyさん mailto:sage [2008/04/08(火) 07:04:21 ID:???] >>70 …そこもたいして他と変らんよ。多分、覚えたての頃に書いたんだろ。 ヘタに丁寧に書いてある分不味い。 # 範囲演算子の第二の用法(このスレの46)なんかは、まあ省くのは # しかたないとして。 初心者向けと言うのを加味しても、for の項の例文の無意味な代入とか、 \w の説明とか、 if($target =~ /my main editor is (\w+)/) { print "bad!\n" if $1 =~ /emacs/i; print "good!\n" if $1 =~ /vi/i; } こんな例文とか。ちょっと眺めただけでも突っ込み所がある。
72 名前:nobodyさん mailto:sage [2008/04/08(火) 23:43:12 ID:???] $+ の意味はなんですか? $# は探してたんでやっとわかった。最後の変数ね 大全600ダメだ ゴミ買って来た様なもんだな使えねえ 他の解説書に気になるサンプルがあった よく読んでもサンプルに出てくる$+の意味は解説されていない 仕方ないので意味を調べて廻る くだらない時間が過ぎていく・・・ 意味わかんないので他の解説書で調べたり ググって調べたり無駄な時間ばっかりだ それで答えは出てこない どうなってんだ? hello、perl以外作ったことないよ グーグルで$+ と$# と半角でぐぐったら1件もヒットしない なぜなんだろか?? 怪しい命令なのかね
73 名前:nobodyさん mailto:sage [2008/04/08(火) 23:57:18 ID:???] >>72 www.google.com/search?hl=en&q=perlvar
74 名前:nobodyさん mailto:sage [2008/04/09(水) 00:44:21 ID:???] >>73 ありがと ラストプレーンマッチ 最後にマッチする括弧がどれかわからない場合に使うと便利 まさにこれですよ^^ ありがとう while (<FH>) { $links{$title} = $1 and last if (m!<title>(.+?)</title>!) } これの m! の部分はマルチオプションっていうのかな 後ろに!が付いているので複数行はダメという意味でよい? これを複数行対応にしたいのでシングルモードに!にしてみると while (<FH>) { $links{$title2} = $1 and last if (s!<title>(.+?)\n(.+?)</title>!) } デバッグでエラーになるんだよね 複数行対応にするにはどうしたらいいですか? ここが$+の使いどころかな? わかんない・・・
75 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/09(水) 01:15:30 ID:???] あぼーん用に捨てトリ。>>55 です。 >>74 だからそのコードは使い回さずに書き直してくださいと(ry m! … スラッシュのエスケープが面倒だった。 / 以外の記号でパターンを囲むとき用。 後ろの ! … m! で始めたんだから終わりも同じ記号。 複数行 … pc11.2ch.net/test/read.cgi/tech/1186030400/638+642 で教えました。 ついでに言うと pc11.2ch.net/test/read.cgi/tech/1186030400/673 も私です。「gawkで片づいたら、くだすれPerlのアレは全部無駄ですか」という気持ちがあのレス。 ご自分でお書きのとおり「残念」です。 あと、ここもム板の正規表現スレも自分の日記を書くとこじゃありません。
76 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/09(水) 01:55:27 ID:???] 忘れてた。 while (<FH>) { # 1行ずつ読み込んでループする。$_ に入ってるのは1行だけ }
77 名前:nobodyさん mailto:sage [2008/04/09(水) 02:43:19 ID:???] >>75 さん こんばんわお世話になります^^ 正規表現の「残念でした」は先の言葉が「次はなんだろう」だったので クイズのノリなのかと思って perl→gawkは正解じゃないので「残念でした♪またどーぞ♪」のノリでお答えしたのですが 言葉は難しいですね ご心配無用ですよ 私がやりたい事を理解できればスグ消えます ただ思ったよりかなり時間はかかっていますが パソコンには関係のない商売なのでこればっかり調べたり勉強してとかは実際無理なので。 例の教えて頂いたコードを参考にさせて頂いているのですが コードって元コードを理解しないと書けないですね^^; あのコードで特にわからないの所は2箇所あります 1箇所目は複数行 2箇所目は下から3行目のループ 1行で$fileを3回使っていますよね 2回目$fileはファイル名だとわかるのですがlist_fileの宣言をすれば自動的に省略して$fileでOK?? 1回目はmyが初めについているのでこの行で宣言してるってことなのだろうか? 3回目はlinksになっている何故$file(同じ文字なのに)動作は違うのかがよくわかりません タイトルの下にデータ行と備考項目と増やしたいのですが何故か最初の5バイトが無くなるんです まあ気長にやってみますよ オヤシミ^^
78 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/09(水) 03:07:32 ID:???] >>77 # 「こんぴーたに無関係な商売なので、用事が済めばあんたらにもプログラミングにも用はない」と # 言ってることに気づいてるのかなあ。 ・複数行のこと。 ループ書き直すのが面倒な心境なので略。 ・foreach my $file (sort keys %links) { print FH qq|\t<li><a href="$file">$links{$file}</a></li>\n| } のこと。 foreach (sort keys %links) { print FH qq|\t<li><a href="$_">$links{$_}</a></li>\n| } # 動作は同じ。
79 名前:nobodyさん mailto:sage [2008/04/09(水) 03:29:44 ID:???] >>78 よくわかんないけど 可哀相な人だ ヘンテコなとらえ方してるね あなたには感謝しているけど 仕事を放ったらかしでは生きていけませんという意味なのだが・・・ とにかくありがとう >>78 に記載してくれたコードも猫に小判 私には理解できていない 自力でなんとか頑張ってみるよ あなたはとてもお人好しでいい人だ 知識もある 短気なところ直せば世界が変わると思うよ オヤシミ^^
80 名前:nobodyさん mailto:sage [2008/04/09(水) 10:21:11 ID:???] >>74 m// perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators 複数行対応 perldoc.perl.org/perlre.html#Modifiers
81 名前:nobodyさん mailto:sage [2008/04/09(水) 11:43:17 ID:???] >>◆EtAiUEg7/Q アンタ良い人だよ、おつかれさんw
82 名前:nobodyさん mailto:sage [2008/04/09(水) 16:26:01 ID:???] >>80 ありがと $str =~ s/<aaa.*?>(.+?)<aaa>/$1/s; これまだ活用できていないんよ^^; 検索するところに("$str")や("$1")とかしてみるんだけど結果が出ない んで書き込みのところも同じようにしてみた・・・結果は出ない 命令の前にmyを付けてmy $str =~ s/<aaa.*?>(.+?)<aaa>/$1/s;とかやってみたけど同じだ この複数行対応はまだまだ先の課題のようだorz %linksこれって特別な命令ですか? どうもこれがわかっていないと検索文字がおかしくなるみたい (m!<title>(.+?)</title>!)これの場合対応したファイルは狙い通りに処理が終わる (m!<title(.+?)/title>!)こうすると >タイトル< という感じで両端に><がひとつづつくっついている 他の<で始まる文字列を検索してみた 自分で適当に作った<aaa>とかは思い通りに処理してるけど <objct>をターゲットにしてみた<object(.+?)object> なぜか先頭部分と後部は消えている %linksを%teslinkstesという変数名に変えてみた 構文チェックはエラーなし。しかし起動しなかった^^; %linksを調べてみた 相変わらず全集600には当然のように記載されていない ネットだけが頼りか・・・ リンク集ばかりヒットする ググル文字を変えて「perl 命令」「perl 索引」「perl 逆引」 期待できそうなサイトはあったけど%linksは見当たらない みんなどこで覚えてるんだろうか学校行ってたのかな? サンプルを参考にさせて貰う以前の問題だな %linksは明らかに特別な変数のような希ガス
83 名前:nobodyさん mailto:sage [2008/04/09(水) 16:33:39 ID:???] 「perl 特殊変数」でぐぐるといい もしくは perldoc Perlvar 特殊変数以外は自分で定義してるはず。
84 名前:nobodyさん mailto:sage [2008/04/09(水) 17:22:09 ID:???] >>82 せめて>>70 のリンク先(決して推薦はせんが、ま、しかたない)の全部を 「実践」- 読むだけじゃなく実際に実行してみること - してから 質問してくれんか? 答える気にもならんよ。レスしても「理解出来ない」で終りだし。 ◆EtAiUEg7/Q はよくもまあこんなのに色んなスレで付き合ったもんだ。
85 名前:nobodyさん mailto:sage [2008/04/09(水) 17:51:57 ID:???] >>83 さん >特殊変数以外は自分で定義してるはず。 これのようだ ありがと >>84 スレタイ嫁としかいいようないな 質問もアドバイスもしないあなたは何者? どっか逝けばいいよ
86 名前:nobodyさん mailto:sage [2008/04/10(木) 13:21:24 ID:???] 超初心者用ってもPerlのって事だろ 日本語の初心者やそれ以下のヒトとしての初心者はどうかと思うがな
87 名前:nobodyさん mailto:sage [2008/04/10(木) 16:30:12 ID:???] なんか思い込み激しいね こんなの呼ばわりやそれ以下呼ばわりするほうが よっぽど人として恥ずかしいので覚えておくといいよ perl書けたから何?エライの?勘違いもイイトコだ実社会ではね 私はperlに関係あることを書き込みに来ているわけで 単語もわからないので超初心者だと自覚してるよ まぁそういうのここでは関係ないでしょ 子供の言い合いみたいなのに付き合ってられないので 以降その手の話題は私にはしないで結構ですレスもしないです 今のところ解答者は2名のようだが居なくなるかもしれないし 気まぐれな方が通るかもわかんない 気長に待ってみてもレスもなく、このスレ消滅ってって事でも それはそれで仕方ない私がどうこう出来ることでもない 煽るだけのレスよりかはいいと思う 今日のわからないこと。 取得タイトル部分は <a href でファイル名にリンクが張られている 後にprintした結果のタイトルには<title>のタグは付いていない その部分を真似て他の部分を取得しようと試してみた 文字列だけがprintされているタグは前後ともに切れている わからなかい例の1行で3回fileを使っている部分が味噌だな その部分のスグ下で print FH qq|"$file"\n|; を記載してみた 何も取得しない・・・$fileを他の形式にしても同じようだ 謎の1行はその1行で3個の$fileを育成しているのか?? 文字列の取得だけの場合は応用が利くって事がわかった タグ付きの部分の取得はまた別にしたほうが良さげ perlでタグ付き文字列取得の謎ってことで今日はおいておこ^^
88 名前:nobodyさん mailto:sage [2008/04/10(木) 16:57:06 ID:???] 質問にはわかる範囲で答えてあげたいけど、マナーや礼儀も必要。 質問は簡潔に。 煽りはスルーで。 回答には感謝を。 おっぱいうp。
89 名前:nobodyさん mailto:sage [2008/04/10(木) 17:04:46 ID:???] せっかく和みレスが入った所悪いが、、、 >>87 俺は47=71=84≠86。 全く進歩しない奴にレスしてもつまらん。 お前が(無いと思うが)俺を回答者としてカウントしてるなら外してくれ。 「超初心者」と自覚してるならば、誘導URLを見て、変数、配列、ハッシュ 辺りの基本用語を頭に入れるくらいの礼儀は心得ろ。 # 正規表現スレにお前が表われて7日。全く進歩してないんだもん。 # 教えて君にも程がある。 煽ってくれても構わんが、その煽りの文章を考える暇があったら(中級以上の リファレンスを買うんではなく)初心者本でも素直に買って読めよ。 空気悪くしてすまん、他の人。しばらくレスは自粛します。
90 名前:nobodyさん mailto:sage [2008/04/10(木) 17:07:35 ID:???] マナーや礼儀ってあなたが決めてるの? 「マナーたるものこういうものである」 「礼儀とは云々・・・」思い込み激しいと疎外しちゃうよ なんか勘違いしてるね ペコペコしろという上から目線 キンモ〜〜としか言いようないなw
91 名前:nobodyさん mailto:sage [2008/04/10(木) 17:23:04 ID:???] >>90 俺、>>81 =>>83 =>>88 質問者=初心者ではないし、回答者=エライわけでもない。 わからないことは質問する、わかることは答える。 ただ、教えを請う立場なら礼儀は必要だと思う。 でも勘違いしてるならしょうがない、以後回答は控えます。
92 名前:nobodyさん mailto:sage [2008/04/10(木) 17:30:12 ID:???] >>91 あ、そうなんだ お世話になったねありがと お疲れちゃん
93 名前:nobodyさん mailto:sage [2008/04/10(木) 17:54:14 ID:???] 情報が只でもらえると勘違いしてる質問者か。 俺も抜ける。まぁ、頑張れ。
94 名前:nobodyさん mailto:sage [2008/04/10(木) 17:57:34 ID:???] >>93 こんなとこで客を探してる暇な業者さんなのだろか? さよなら 公然の場所で恥ずかしげもない その発言が面白すぎて 釣られたー
95 名前:nobodyさん mailto:sage [2008/04/10(木) 18:09:05 ID:???] 久々に香ばしいのが沸いたなあ ま、一所懸命煽ってがんばってくれ 俺も抜けるよー
96 名前:nobodyさん mailto:sage [2008/04/10(木) 18:15:14 ID:???] >>95 ていうかさっきからここで発言してるの あなたと私だけじゃないでしょうか? まぁ解答しないよってのはよくわかったのだが それで何?くらいにしか思わないのだがw ま、さよなら お元気で^^
97 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/10(木) 18:30:14 ID:???] >>85 スレタイの「超初心者」ってのは… -- use strict; my %doubutsu; # どうぶつハッシュ # $doubutsu{'いぬ'} = 'ポチ'; # $doubutsu{'ねこ'} = 'タマ'; # はじめはこうしてたのですが、種類を増やしやすいように工夫してみました。 my @kumiawase = ('いぬ','ポチ','ねこ','タマ','へび','ガララ'); for (my $i = 0; $i < $#kumiawase; $i++) { $doubutsu{$kumiawase[$i]} = $kumiawase[$i+1]; } foreach (keys %doubutsu) { # 「うちの タマ の名前は へび です。」という大惨事が!ヒントください! print "うちの $_ の名前は $doubutsu{$_} です。\n"; } -- …こういう「プログラミングを身につけるのが目的」の超初心者さんのこと。 「そりゃそうなる。$i++ を $i+=2 に変えてみ。つーか、ガララかよw」とか 「("いぬ\tポチ",...) 形式にして foreach と split(/\t/) 使ったらどう?」とか 気のいい回答者さんたちが相手してくれる。 結果だけが目当てなのに業者依頼もせず、気長に取り組むつもりも全くなく、 先を急ぎまくって質問を次々に投げる人は、初心者でも何でもありません。 > 仕事を放ったらかしでは生きていけません そうですよ。 あなたのような方から「要求定義262,500円 + 制作3,150円 = 計265,650円」をいただく立場の人たちが 仕事をほったらかしてタダでできるのは、冒頭のような初心者さんのお手伝いぐらいです。
98 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/10(木) 18:30:49 ID:???] >>89 今更ですが range operator の誰向けでもないフォロー、ありがとうございます。 説明しようとして「左項が真になるとスイッチが入り…えーと…perldoc」でしたので。 「よくもまあ」ではあるんですが、仕事もヒマな時期でしたし ・いつも見てるスレに何かが来る ・自分が回答 ・「理解できない。でもありがとう」と言って(一旦)去る …これで他の方の被害が少しは減るのなら、と。 ソフ板辺りも壮大なことになってそうですが、あちらは見てないので関わってません。 教えてちゃんですらないんですよね。 結果が欲しい、手法には興味がない(と書くと「違う」と返されるだろうけど)、と。 そんなわけだから処理系自体がコロコロ変わったりもするわさ、と。 腰を据えて初心者本でお勉強という方向へは行かない人なのでしょう。 本当は自分もこんな話は書きたくないんですが、誰かが書かないと日記が延々と続くんだなあ と思ったので、NG用に捨てトリつけた次第です。 >>96 短気を起こしていろんな人を煽っても、いいことないですよ。 そういえば、私の短気なとこを直せば世界が変わると教えてくれた人がいました。 (レス|回答)自粛の方が続出、と。まあ、仕方ないというか自然な流れでしょうな。 捨てトリももう要らなくなって、ここは素敵な日記スレに移行かな。
99 名前:nobodyさん mailto:sage [2008/04/10(木) 18:31:42 ID:???] >>96 はKY
100 名前:nobodyさん mailto:sage [2008/04/10(木) 18:35:01 ID:???] まーくだすれだしアリっちゃアリ。
101 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/10(木) 18:37:23 ID:???] >>99 =~ s/96/97/; # 勝手に直しとく
102 名前:nobodyさん mailto:sage [2008/04/10(木) 18:44:02 ID:???] >>97 おぉやっぱりあなたか あなたが顔を真っ赤かにしながらレスしている姿は笑えないよ (まぁ吹いちゃってしまったのだがwww) なんか難しい説明されてもよくわからない くだすれ = くだらないスレ と教えてくれたのですが しかも超初心者とまで付け足してあるw まさに私のためのスレだと思ったよ スレタイは業者の釣りえさだったのか 気づけよ>>自分www そんなに必死になるほどのことでもないので むしろどーでもいいことなんだけど 気になったからやってるだけで 質問者は回答に飢えている この心理を突いた網だったのだ ネットでネット(網)張ってましたねw 洒落にもならないけど実際そういう人がいてたのか・・・ 必死やのー ま、気長にやっていくのであなたは私を気遣う必要ないですよ んじゃね
103 名前:nobodyさん mailto:sage [2008/04/10(木) 18:52:33 ID:???] >子供の言い合いみたいなのに付き合ってられないので >以降その手の話題は私にはしないで結構ですレスもしないです リャマ本からの引用 「Perlは、少なくとも毎日20分間はプログラムを書く--そしてほとんどのプログラムをPerlで書く--人向けの言語です。」 もし、毎日書くか事情があるなら>>89 の引用 >その煽りの文章を考える暇があったら(中級以上のリファレンスを買うんではなく)初心者本でも素直に買って読めよ。 腰を長くすえるなら応用のきくやつを学べ。 アドバイスいっぱい転がってるじゃん。 あと、おまえなじられたら死ぬのか?
104 名前:nobodyさん mailto:sage [2008/04/10(木) 18:54:15 ID:???] | | ∩___∩ | | ノ _, ,_ ヽ (( | プラプラ / ● ● | (=) | ( _●_) ミ _ (⌒) J )) 彡、 |∪| ノ ⊂⌒ヽ / ヽノ ヽ /⌒つ \ ヽ / ヽ / \_,,ノ |、_ノ / ぷちっ / ∩___∩ . 从 / | ノ ヽ / / ● ● | (=)ヽし | ( _●_) ミ/ ` ノ 彡、 |∪| ノ / / ヽノ / ノノ / / / / ムシャ | ムシャ | ∩___∩ | ぷらぷら | ノ ヽ (( | / ● ● | J )) . (( | ( _●_) ミ ・ 彡、 |∪}=) ,ノ ∴ / ヽ/^ヽ ヽ 。 | ヽ \ | | ヽ__ノ
105 名前: ◆EtAiUEg7/Q mailto:sage [2008/04/10(木) 18:57:11 ID:???] >>102 何か、私にはわからない謎の陰謀にお気づきになった様子ですが 自分が>>78 の次に書いたのは>>97 ですよ。 「私=ここで客を待ち構えてる業者」ということにしたいのでしたら、どうぞご自由に。 # こんなとこで客を拾うのってめんどくさそうだなーとしか思えないけど。
106 名前:nobodyさん mailto:sage [2008/04/10(木) 19:00:59 ID:???] よくわからんが私の質問どっかいっちゃったのは確か棚
107 名前:nobodyさん mailto:sage [2008/04/10(木) 19:01:12 ID:???] 久々に叩かれまくられてるのを見た 超初心者でもここまでの香具師はそうそういまい
108 名前:nobodyさん mailto:sage [2008/04/10(木) 19:02:32 ID:???] レスしてるのは俺ひとりなんだけどな。
109 名前:nobodyさん mailto:sage [2008/04/10(木) 19:09:35 ID:???] 電波役になったり電波に煽られる役になったり◆EtAiUEg7/Q役になったりしながら ひとりでスレ回すのってマジ大変。
110 名前:nobodyさん mailto:sage [2008/04/10(木) 20:06:37 ID:???] くだすれ = くだらないスレじゃなくて 詳しい人が見たらくだらない質問だと思ってたけどな。 >>1 を読んでもそう取れる。
111 名前:nobodyさん mailto:sage [2008/04/10(木) 23:57:10 ID:???] >>102 おまえ、キチガイで名をはせたヨシオカヒデノリだろ。キチガイっぷりがそっくりだ。
112 名前:nobodyさん mailto:sage [2008/04/12(土) 00:00:56 ID:???] >>87 >>なんか思い込み激しいね が>>87 を見ても>>102 を見ても自分の発言に対して書いてるようにしか思えない点について
113 名前:nobodyさん mailto:age [2008/04/13(日) 13:47:51 ID:???] 元気でやっとるかね^^ ちょっとわからないことがあってまた落書きしに来たのだw 解答いただけたら嬉しいけど期待できないのはわかっているので 気長に解答者さん待ってみるよ^^; @抽出部分の検索文字を <object (.+?)object> にすると (.+?)の部分だけが取れて 始めに出てくるはずの <object と 最後の object> が現れないんだよね 変数宣言の名前を全部変えてみたけど動くので特別な変数名は使っていないようだ perl自体がそういう仕様なのかね?? Aそれから複数行抽出なんだけど 1行もしくは2行もしくは3行ってのはダメなのかな? (s<title(.+?)title>|<title(.+?)\n(.+?)title>|<title(.+?)\n(.+?)\n(.+?)title>s); Bそれからまだあるんだよね <title> <object> <span> この3箇所を抽出したいんだけど何故か最後に書いたトコだけが取れるんだ { と } の間に3つとも書いているんだけど ファイルクローズして改めてファイルオープンするって手順にするべきなのだろうか? 今はソースぐちゃぐちゃでワケワカメになってきたw 全集600ダメだ オープン オブ ダイ で ダイの部分が予約語なのか調べて見てもわかんない 他の本でdieの意味がわかる せめて予約語は全部掲載してもらいたいもんだ それでは@〜Bよろしく願います また会おう^^; シーユーあげ印w
114 名前:nobodyさん mailto:sage [2008/04/13(日) 15:31:39 ID:???] (〜´-`)〜
115 名前:nobodyさん mailto:sage [2008/04/13(日) 18:34:17 ID:???] 向うでデリミタの質問をしたのもコイツか? お前のせいで、他の人の質問でも答える気にならんのだよ自重してくれんかね。
116 名前:nobodyさん mailto:sage [2008/04/13(日) 18:44:46 ID:???] 便乗したのがコイツだろ…進歩の無いコテが答えたからいいけどさ あのコテも短レスで時々全然ボケた答え返すんだよなあ消えてくんねえかな
117 名前:nobodyさん mailto:sage [2008/04/14(月) 01:20:54 ID:???] ('A`)前進しないよ これの27行目 closedir(DIR); でエラーになるんだけどなんで? #!/perl/bin/perl use strict; use warnings; print "<html>\n"; &traverse_html("."); print "</html>\n"; sub traverse_html { my $dirname = shift; my $delim = '/'; if ($dirname =~ /[\/\\]$/) { $delim = ''; } print "<ul>\n"; opendir(DIR, $dirname) or die "$dirname: $!"; foreach my $entry (readdir(DIR)) { next if ($entry eq '.'); next if ($entry eq '..'); my $filename = "$dirname$delim$entry"; if (-d $filename) { print "<li>$entry\n"; &traverse_html($filename); } else { &do_html($filename, $entry); } } closedir(DIR); print "</ul>\n"; }
118 名前:nobodyさん mailto:sage [2008/04/14(月) 08:31:02 ID:???] >>117 再起してるからじゃね?先にファイル一覧を取得してclosedirしてから再起呼び出しするか、 ディレクトリハンドル(DIR)をローカル変数に浮かすかすればインジャネ? traverse_html ※1 の中で traverse_html ※2 を呼び出す → ※1のDIRを※2で上書きする → ※1に戻ったとき ※2のDIRはclose済み テストしてないから動くかは知らんけどこんな感じ。 sub traverse_html { my $dirname = shift; my $delim = '/'; my @entrys = undef; my $i = 0, $j = 0; if ($dirname =~ /[\/\\]$/) { $delim = ''; } print "<ul>\n"; opendir(DIR, $dirname) or die "$dirname: $!"; foreach my $entry (readdir(DIR)) { next if ($entry eq '.'); next if ($entry eq '..'); $entrys($i++) = $entry; } closedir(DIR); for ($j=0;$j<$i;j++){ my $filename = "$dirname$delim$entrys($j)"; if (-d $filename) { print "<li>$entrys($j)\n"; &traverse_html($filename); } else { &do_html($filename, $entrys($j)); } } print "</ul>\n"; }
119 名前:nobodyさん mailto:sage [2008/04/14(月) 13:27:25 ID:???] >>118 さん レスありがとう^^ 試してみたら my @entrys = undef; my $i = 0, $j = 0; 部分でエラーになって以下関連箇所もエラーになるんだよね >>117 のコードでのエラー文こんな感じ closedir() attempted on invalid dirhandle DIR at itiran-tes.pl line29 構文チェックではエラーにならない デバッグの識別子チェックというのを実行してみたらエラー箇所がわかって タイトルとファイル名は取得されていてリンクも貼られているようだ >>117 の closedir(DIR);がエラーにならないように出来たら ワンステップだけど前進出来そうなんだよね もうちょっと色々試してみるよ 朝のあわただしい中わざわざレスしてくれてありがとう 丁寧に教えてくれて感謝してまふ んじゃ
120 名前:117 mailto:sage [2008/04/14(月) 13:33:05 ID:???] >>117 には続きがあるんだけど 2chの文字数制限で記載できなかったんだ #ここに>>117 の部分がある sub do_html { my ($filename, $entry) = @_; return unless ($filename =~ /\.html?$/); open(FILE, $filename) or die "$filename: $!"; my $file = join('', <FILE>); close(FILE); my $title; if ($file =~ m|<title>(.*?)</title>|si) { $title = $1; $title =~ s/[\r\n]//g; } else { $title = $entry; } print qq|<li><a href="$filename">$title</a>\n|; }
121 名前:118 mailto:sage [2008/04/14(月) 15:57:05 ID:???] とりあえず、Linux Perl v5.8.6で動かしてみた。 117と120をつなげて動かしたら動いたよ。 OSやPerlインタプリタのの問題かな?
122 名前:nobodyさん mailto:sage [2008/04/14(月) 16:17:14 ID:???] >>121 「オープン オブ ダイ」の話を書いてから12時間で readdir でぶん回して再帰もしちゃうんだぞ、ってところが問題なんだと思うよ。
123 名前:117 mailto:sage [2008/04/14(月) 16:47:14 ID:???] >>121 さん そうなんだ わざわざテストしてくれたんだ(;´д⊂ヽありがとう WindowsXP アクティブパール5.88 シグウィンでもっかいテストしてみて作者にメールしてみるよ ありがと >>122 何が問題なのだ? 質問も解答もしないのに横から茶々入れてるあなたのほうがよっぽど問題なのだが・・・ 購入した本にサンプルが付いていた 動かないので自分で解決できないか模索した どこがおかしいのだ あんたの頭かw
124 名前:nobodyさん mailto:sage [2008/04/14(月) 17:20:05 ID:???] 向うで再帰の質問をしたのもコイツか? お前のせいで、他の人の質問でも答える気にならんのだよ自重してくれんかね。 >その煽りの文章を考える暇があったら(中級以上のリファレンスを買うんではなく)初心者本でも素直に買って読めよ。
125 名前:117 mailto:sage [2008/04/14(月) 17:21:37 ID:???] cygwinで動いたんだけどcdのhtmlからの取得はしていなかった サビフォルダーに置いていたhtmlからの取得は全部おk コマンドプロンプトで確認したんだけど ファイルは作成されていない コマンドプロンプトの操作画面に現れたものを ファイルに保存するのはどうすればいいですか? 取りあえず>>122 は答えなくていいよ どうせ野次るだけなのは明白だ 自分でも探してみるけど 私に理解できるように答えれる方おられましたらよろしくお願いします
126 名前:nobodyさん mailto:sage [2008/04/14(月) 17:22:29 ID:???] >その煽りの文章を考える暇があったら(中級以上のリファレンスを買うんではなく)初心者本でも素直に買って読めよ。
127 名前:nobodyさん mailto:sage [2008/04/14(月) 17:23:21 ID:???] >>124 それ勘違い 再起わかんないので具体的な質問できないよ その質問には答えてあげればイイヨ どうせ私が見てもわかんないのでヨロシコ
128 名前:nobodyさん mailto:sage [2008/04/14(月) 17:25:31 ID:???] 再帰を「再起」と書く初心者が同じ日に二箇所に現われるもんかねえ。
129 名前:nobodyさん mailto:sage [2008/04/14(月) 17:27:06 ID:???] >>126 「超初心者用」と「初心者用」購入したんだけど ささっと変数を解説したらCGIの話ばかりで ファイル操作は最後のほうでちょびっとだけ解説してるんだ なぜかperlの解説本は「CGI」「CGI」の連呼でキモい
130 名前:nobodyさん mailto:sage [2008/04/14(月) 17:29:05 ID:???] >>128 誤字がどうしたのだ? そんなの関係ないと思う 小心者だねw
131 名前:むこうの928 mailto:sage [2008/04/14(月) 18:04:05 ID:???] >>124 ,>>128 激しくゴメン。別人です。 何日か前から、こっちがこんなことになってるから、むこうで聞いてみた。 (まあ実際WebProgではないんだけど) しまった”再帰”か〜。 つっても再起でコケてるわけではなくて、(まただw) どうも =~ s///e の”e”でこけてるようなんだ。 正規表現絡みで、しかもこっちこんな状況だったからあんま書き込みたくなかったんだけど 案の定つっこまれてしまった。 まあいいや、今は時期が悪かったってことで、暫く消えます。
132 名前:nobodyさん mailto:sage [2008/04/14(月) 20:11:42 ID:???] 一応、お詫びします。迷ったけどこっちに書きます。 貴方が本当に別人なら理解出来るでしょう。 ====================== 当方、確認の術を持たないので(win環境なし)。 s///e の問題にしろ再帰の問題にしろ、再帰を使うほどの ネタでは無さそう。あくまでも適当に書いた例だけど。 # Wide character warning が出るのは御愛嬌。 use utf8 ; my %hash = map{ my $new = $_ ; $new =~ s/(\d)(\d)/$1十$2/ if length $new == 2 ; $new =~ s/1十(\d)/十$1/ ; $new =~ tr/123456789/一二三四五六七八九/ ; $new =~ s/0// ; $_, $new ; } 1 .. 99 ; while(my $line=<DATA>){ $line =~ s/(\d+)条/$hash{$1}条/; print $line ; } __DATA__ 3条 24条 10条
133 名前:nobodyさん mailto:sage [2008/04/14(月) 20:48:09 ID:???] こっちでいいのかな? >>131 ActivePerl5.8.8(build816) で試そうとしたんですけど、標準入力からうまく食ってもらえず。 で、__DATA__ と <DATA> にしたり open(IN, '<', 'list.utf8'); binmode(IN, ":utf8"); 以下略にしたりしてみたら 意図どおり(のはず)の出力になりました。perl.exe も落ちず。 # CP932 な環境で binmode(STDIN, ":utf8") って考えたこと自体がないのでよくわからない。 >>115 >>124 諸事情により疲れすぎて疑心暗鬼になってるように見えますよ。 諸事情のほうは継続の気配なので、少し休まれては如何かと。
134 名前:130 mailto:sage [2008/04/15(火) 02:25:32 ID:???] こっちにレスがついてた。みんなサンクス >>132 イエッサー。わかりますとも。自分でも向こうに書き込んだ後に、ハッシュ使えばs///eも再帰も必要ないかなって思った。 処理速度もこっちのほうが速いし。でも自分で書いたのはこんなの。うーん、いまイチスマートにならないなあ。 my $kanj; for (1..99){ my $kan = $_; $kan = substr($_,0,1) . '十' . substr($_,1,1) if($_ >= 10); $kan =~ tr/123456789/一二三四五六七八九/; $kan =~ tr/0//d; $kan =~ s/一十/十/; $kanj->{"$_"} = $kan; }
135 名前:130 mailto:sage [2008/04/15(火) 02:26:02 ID:???] >>133 あれ、ちゃんと動きましたか? うちでは昼間とは別のPC(PerlのVerは同じ)でやってみたけど、やっぱり例のWindowsダイアログが出て落ちる。 で、いろいろあがいてみたところ、上では、再帰ではないっぽいこと言ったけど、やっぱり再帰に問題ありかと。 特にif($num>=20)のところで、$1と$2を同じ関数に再帰してるとこで、次の正規表現マッチで$1$2あたりが壊れるんではないかと。 (ちなみに、これまたCentOS4,Perl-5.8.8-5.rpmだと期待通りに動く) 上で再帰ではないと思ったのは、あのスクリプトを、use utf8;とbinmode関係コメントアウトして実行してみると、 (当然tr/123.../のところで文字列がぶっ壊れるけど)、最後まで落ちずに走ることと、 以前に正規表現($1$2や$'$`$&も)使いまくりで、さらに6-7段ぐらいネストした関数書いた時も、期待通りに動いてくれたんで、 ちゃんと覚えてくれてるものかと思ってた。これからは、どうやらこれを改めないといけないようだ。 > # CP932 な環境で binmode(STDIN, ":utf8") って考えたこと自体がないのでよくわからない。 自分は、Win上でもtextは基本的にUTF-8で保存してるもんで、(本番環境がLinuxなのもあるけど)ワンライナーっぽく書くときは、 コードの中でopenやら、encode(decode(...))やら書くのメンドいんで、perl script.pl < infile.txt > puts.txt みたな感じを多用してます。 ちなみに、向こうのコードをopen(IN...)とかでやっても、ウチの環境ではやっぱりperl.exeが落ちるのは変わらない。
136 名前:134,135 mailto:sage [2008/04/15(火) 02:27:42 ID:???] ごめん、激しくゴメン。 名前欄>>131 の誤りです。 やっぱり消えます。
137 名前:nobodyさん mailto:sage [2008/04/15(火) 04:16:40 ID:???] >>135 大変失礼しました、重ねてお詫びします。 >>133 >諸事情により疲れすぎて疑心暗鬼になってるように見えますよ。 >諸事情のほうは継続の気配なので、少し休まれては如何かと。 ほんとにその様です。穴があったら入りたいw
138 名前:nobodyさん mailto:sage [2008/04/15(火) 04:17:12 ID:???] 俺も穴があったら入りたい(性的な意味合いで)
139 名前:nobodyさん mailto:sage [2008/04/15(火) 15:19:10 ID:???] これからジュンク堂とヨドバスカメラとbook1stとアサヒヤと紀伊国屋行ってみる りゃまbonがいいんだね 先日、立ち読みしたラクダの本かな? アレファイル操作詳しく載ってるの? 取りあえず今日はperlの絵本というのを探してみようかと思う ま行ってみるよ んじゃ
140 名前:133 mailto:sage [2008/04/15(火) 17:04:26 ID:???] 事故レス。 > 標準入力からうまく食ってもらえず。 test.pl < list.utf8 > converted.utf8 # 0バイトのファイル生成で頭抱える。 test.pl < list.utf8 # 何も吐いてくれない。 perl test.pl < list.utf8 > converted.utf8 # …ちゃんと食ってくれますね。 他人様の疲れを気にする前に、寝ぼけた自分をどうにかしろと。 >>135 要件通りに動くことより「なんで perl.exe が落ちるのはどうして?」が本題ですよね。 ちと時間があったので追試しました。 # 上記寝ぼけから醒めたので STDIN から食う元通りのコード # 食わせたのは for (1..99) { print "ふんにゃか市$_条\n" } で作ったファイル 5.8.8-816 on Win2kSP4 → 正常動作。 5.8.8-819 on WinXPSP2 → 正常動作。 # ビルドを上げる 5.8.8-822 on WinXPSP2 → アッー! # 本当に落ちたので下げた 5.8.8-820 on WinXPSP2 → 正常動作。 build822 だと見事に落ちますねえ。
141 名前:nobodyさん mailto:sage [2008/04/15(火) 19:22:38 ID:???] みごとな検証、お疲れ様。 質問者様が見てくれるといいが。
142 名前:nobodyさん mailto:sage [2008/04/15(火) 23:20:39 ID:???] >>140 原因が同じか違うかもさっぱりわからないが、 5.8.8 build822だとStorableを使ったコードで 大量のstorableデータ(50MB強)を読み込ませると読み込みが終わらない、 という現象にあたったことがある。 同一コードで、build817、あるいは5.10.0 build1001, 1002 では問題なかった。 というわけで、個人的にbuild822は信用していない。 参考情報と言うことで。
143 名前:nobodyさん mailto:sage [2008/04/16(水) 16:55:29 ID:???] *本当の検証*が向こうに出てたので、>>131 さんもご覧になるでしょう。 まあ、元々向こうのネタですし。 # きちんと問題の切り分けして再現する最小コード出す辺りが「向こう」なのかも。 自分のは検証でなく、「おらの環境では動いたずら」だけではひどいと思ったので 補足した程度ですから。 >>142 build822 をインスコすると build821 用の release.(html|txt) が入ってて萎えるんですが CHANGES.txt で build821, 822 だけに書かれてる > plus additional selected changes from the Perl 5.9 development branch. これが気になってます。 > Build 821 was only distributed for HP-UX. ここは…笑うところなのかな。 build822 が5.8系の latest ではあるんですが、自分も同じ印象です。 配布CGI+改造のテスト程度は大丈夫なんでしょうけどね。
144 名前:135 mailto:sage [2008/04/16(水) 20:08:19 ID:???] みなさん本当にありがとうございます。 向こうで見事な回答を頂きました。(Cコードを読み解く力がないので具体的なことはよくわかりませんが・・。) >>140 わざわざ試して頂いてありがとうございます。 自分の記憶では、817->819と820->822でバイナリ互換が崩れる(DBIやEncode、Uni-Jpなんかを再ビルドしないといけない)ので、 古いバージョンに戻してまでやってみようと言う気が起きませんでした。 (ちなみに819->820は再ビルド無しでモジュールが動きました。) >>142 ,>>143 そうですか、build822はあんまりよろしくないのかな? 向こうの返答では、5.10系でも同様に落ちるらしいので、むしろこのコードで動いているほうがよろしくないってことで 修正されたんではないかと思いますが、実際のところよくわかりません。(動くことによる不具合が思いつかない。) 今度ヒマな時にでも、Linux環境でperl-5.10をソースからコンパイルして同じコード試して見ます。 まあどちらにせよ、再帰の中で、tr///(s///も?)を使うようなコードは書かないようにしないといけないっぽいですね。
145 名前:質問 [2008/04/16(水) 23:05:19 ID:oAcDKLtn] ブラウザを閉じると、指定したファイルのデータを消すようにしたいのですが perlで良い方法がありましたら教えてください。
146 名前:nobodyさん mailto:sage [2008/04/17(木) 09:24:21 ID:???] >>145 サーバにいるPerlさんは、クライアントのブラウザが閉じたかどうかを知らないよ。
147 名前:nobodyさん mailto:sage [2008/04/18(金) 01:33:43 ID:???] JavaScript併用
148 名前:145 [2008/04/18(金) 07:47:12 ID:ThTU7HIn] >>146 サーバサイドだからやっぱり無理なんですかね・・ いいモジュールとか有ると期待していたんですが。。。 >>147 JavaScriptのどういったものが教えてください
149 名前:nobodyさん mailto:sage [2008/04/18(金) 10:00:46 ID:???] 閉じたら消すじゃなくて 開いたら消すにすれば?
150 名前:nobodyさん mailto:sage [2008/04/18(金) 14:57:49 ID:???] JavaScriptならonUnloadで消去用のスクリプトを実行させれば? もしくは実行終了のタイミングが予測出来るなら folkなりthreadなりで子プロで消すとかね そもそも消さなきゃならないデータなんて置かなきゃ良いんだよw どうせダウンロードされたくない画像やら動画やらなんだろうけど そんなもんはブラウザのキャッシュからいくらでも回収出来るからなぁ
151 名前:nobodyさん mailto:sage [2008/05/01(木) 01:13:00 ID:???] foreach で読み込むときに異なる行を複数取得教えてください foreachの前で下記のようにやってみたらエラーになります $str1 =~ /あいうえお/; $str2 =~ /さしすせそ/;
152 名前:nobodyさん mailto:sage [2008/05/01(木) 01:16:22 ID:???] 日本語が良くわかんない(><)
153 名前:nobodyさん [2008/05/02(金) 11:14:09 ID:Sh68NuTD] 2chの日付の後に付くIDはどうやって算出しているのですか? よろしくお願いします。
154 名前:nobodyさん mailto:sage [2008/05/02(金) 23:30:24 ID:???] pc11.2ch.net/php/#9 のように?とは&使わずに引数使うのどうするの?
155 名前:nobodyさん mailto:sage [2008/05/03(土) 00:23:50 ID:???] >>154 mod_rewriteとか。 実をゆうと localhost/file.cgi/aaa=bbb とかで、/の後ろを引数として渡したり出来るんだけど、 色々と混乱しそうだから、俺は使わない。
156 名前:nobodyさん mailto:sage [2008/05/04(日) 16:40:15 ID:???] どうやったら、変数に何も値が入ってないってことを確かめられるの?
157 名前:nobodyさん mailto:sage [2008/05/04(日) 18:06:42 ID:???] $hensu or print "ナイヨ(><)\n";
158 名前:nobodyさん mailto:sage [2008/05/04(日) 18:19:28 ID:???] $hensu = 0; で破綻するので>>157 はデタラメ。 defined($hensu) or print "ナイヨ(><)\n"; が正解。
159 名前:nobodyさん mailto:sage [2008/05/04(日) 19:26:18 ID:???] >>156 にとっての「何も値が入ってない」によって答えが変わるでしょ。 my $var = ''; # これが「長さ0の文字列が入ってる」のか「何も入ってない」のか print "どっちが正解かわかんないんです(><)\n" if $var xor defined($var);
160 名前:nobodyさん mailto:sage [2008/05/04(日) 22:15:41 ID:???] 三値論理
161 名前:nobodyさん mailto:sage [2008/05/05(月) 18:10:43 ID:???] use Socketと書かなくても、gethostbyname関数が使えるのはなぜ? ドメインを入力してIPアドレスを出力するだけの、単純なスクリプトを作りたいので