1 名前:nobodyさん mailto:sage [2008/02/25(月) 19:25:51 ID:???] Perlのコーディングで困ってる人のスレです。 【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >2 以降 前スレ pc11.2ch.net/test/read.cgi/php/1189939783/ 過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
251 名前:nobodyさん mailto:sage [2008/03/28(金) 16:45:45 ID:???] my @splitdata = $orgdate =~ /(\d{1,2})+/g; my $datetime = sprintf("%02d/%d/%d %d:%d:%d", @splitdata);
252 名前:nobodyさん mailto:sage [2008/03/28(金) 16:49:23 ID:???] 間違えた my @splitdata = $orgdate =~ /(\d{1,2})+/g; my $datetime = sprintf("%02d/%d/%d %d:%d", @splitdata); print $datetime;
253 名前:nobodyさん mailto:sage [2008/03/28(金) 16:59:35 ID:???] 2008/03/28(金) 09:30:08から08/3/28(Fri) 9:30にするにはどうする?
254 名前:nobodyさん mailto:sage [2008/03/28(金) 17:35:24 ID:???] >>247-252 もはや、知らない奴が見たら暗号でしかないなw
255 名前:nobodyさん mailto:sage [2008/03/28(金) 19:09:17 ID:???] javascriptのプログラムをPerlに移植しようとしていて、複合代入演算子の挙動が違うのでとまどっています。 例えばjavascriptで var c=1;alert(c=c+(c*=10)+(c*=100)); は1011 Perlで my $c=1;print($c=$c+($c*=10)+($c*=100)); は1020 になります。 そこで、この問題について載っているサイトがあれば教えてください。
256 名前:nobodyさん mailto:sage [2008/03/28(金) 20:04:35 ID:???] 式の途中で値を変えるやり方がまずいとは思うけどね
257 名前:nobodyさん mailto:sage [2008/03/28(金) 23:58:05 ID:???] 加算の評価順は定義されてないという事を知らずに > var c=1;alert(c=c+(c*=10)+(c*=100)); こう書くのはクズグラマー。
258 名前:nobodyさん mailto:sage [2008/03/29(土) 03:54:49 ID:???] >>255 www.st.rim.or.jp/~phinloda/cqa/cqa7.html
259 名前:nobodyさん mailto:sage [2008/03/29(土) 04:33:29 ID:???] >>253 年を二桁にしたら100年後に困るぞ!
260 名前:nobodyさん mailto:sage [2008/03/29(土) 08:45:59 ID:???] >>253 s/^\d\d//; s/^(\d\d\/)0/$1/; s/金/Fri/; s/:\d\d$//;
261 名前:nobodyさん mailto:sage [2008/03/29(土) 14:59:25 ID:???] >>259 19xxから20xxに変わったが、2桁で困ってないので100年後も同様に困らない。
262 名前:nobodyさん mailto:sage [2008/03/29(土) 17:09:47 ID:???] >>259 百年後なんて俺等死んでるから気にする必要ないw
263 名前:nobodyさん mailto:sage [2008/03/29(土) 17:56:41 ID:???] そういう屑のせいで困る人たちもいるわけだ
264 名前:nobodyさん mailto:sage [2008/03/29(土) 19:27:22 ID:???] >>262 医学の進歩は目覚しいから、お前のような底辺奴隷はむしろ死ねないかもしれない。
265 名前:259 mailto:sage [2008/03/30(日) 22:02:27 ID:???] ジョークを真に受ける馬鹿がこんなに多いとは・・・
266 名前:nobodyさん mailto:sage [2008/03/30(日) 23:27:37 ID:???] >>265 更にジョークを真に受けた馬鹿の登場ですか?
267 名前:nobodyさん mailto:sage [2008/03/30(日) 23:58:51 ID:???] >>266 言っとくけど俺をあまりナメないほうがいいよ vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから くだらないことで刺激して後悔しないようにね
268 名前:nobodyさん mailto:sage [2008/03/31(月) 01:08:05 ID:???] >>267 そのコピペには、もう飽きた\(^o^)/
269 名前:259 mailto:sage [2008/03/31(月) 07:25:32 ID:???] >>266 後出しジャソケソカコワルイ
270 名前:nobodyさん mailto:sage [2008/03/31(月) 10:11:33 ID:???] どっちが後出しだよw
271 名前:nobodyさん mailto:sage [2008/03/31(月) 12:02:54 ID:???] 中出しの方が気持ちいいぞ。
272 名前:nobodyさん mailto:sage [2008/04/01(火) 21:14:09 ID:???] HTML::Templateっていうモジュールを使おうとしたら 鯖管理してる人が入れたくないです。っていうので HTML::Templateの代わりになるような標準モジュールって何かありますかね? 個人的にはHTML::Templateの<TMPL_IF>みたいなのが使えれば大満足なんだけども 自分で作っちゃったほうが早いかな?
273 名前:nobodyさん mailto:sage [2008/04/02(水) 01:00:40 ID:???] 普通にディレクトリでも作って放り込んで、useで使うのは駄目なん?
274 名前:nobodyさん mailto:sage [2008/04/02(水) 10:50:31 ID:???] HTML::TemplateはPurePerlだからディレクトリ作ってほうりこめばおk
275 名前:nobodyさん mailto:sage [2008/04/02(水) 14:04:47 ID:???] 昨日からperlに興味持っています perlには大きくわけて2つあると聞きました 1:恐らくActivePerlの為に書かれたであろうソースをcygwinで動かしたい (書いた方はどちらのperlと言うこともなく消えちゃいました。他の方が「それperlだよ」と教えてくれました) 2:1行目に書かれていた 「 #!/perl/bin/perl 」 を 「 #!/cygwin/bin/perl 」 に書き換えた 2行目にあった 「 # /usr/bin/perl はないはず 」 を削除した 読み込ませるファイルをcgi-binフォルダーに置いた 3: Internet Explorer ではこのページは表示できません cygwinとActiveperlは書き換える箇所があるのですか? 基本は同じと聞いたのですが細かく言うと変更すべきところもあるんでしょうか? どなたかよろしくお願い致します
276 名前:nobodyさん mailto:sage [2008/04/02(水) 14:28:33 ID:???] >>275 >perlには大きくわけて2つある ファイルを置けば動くPurePerlと、installが必要なバイナリの2種類かな? >恐らくActivePerlの為に書かれたであろうソースをcygwinで プログラムファイル自体にその差は無い よって >cygwinとActiveperlは書き換える箇所があるのですか? 書き換える箇所は無い ただしActivePerlでは動かないものもあるかもしれない cygwinはUNIXエミュレータ(みたいなもの) ActivePerlはWindows版のPerlインタプリタ 同列に並べるのはおかしい > Internet Explorer ではこのページは表示できません このエラーが出るってことはおそらくパーミッション
277 名前:nobodyさん mailto:sage [2008/04/02(水) 15:21:24 ID:???] >>275 書いた人です。「それは Perl だ」と言ったのも自分。 あれはCGIではなくてCLIスクリプト(=コンソールアプリ)なので、 Perl実行環境さえあればWebサーバだの何だのは要りません。 # 「標準出力に何も吐かない」ブツはCGIではない。 あなたのしたいことは、Web制作板ともWebProg板とも関係のないことです。 ブツ自体はActivePerl だろうが cygwin 上の Perl だろうが動きます。 プロンプトから perl hoge.pl するだけ。以上。 ただ、glob() に2万ファイル食わせるのはやめといたほうがいいと思うな。
278 名前:nobodyさん mailto:sage [2008/04/02(水) 15:33:03 ID:???] 直接やれwww
279 名前:nobodyさん mailto:sage [2008/04/02(水) 15:40:45 ID:???] 元ネタはここか pc11.2ch.net/test/read.cgi/hp/1205922529/100 ほんとか?
280 名前:nobodyさん mailto:sage [2008/04/02(水) 15:52:10 ID:???] >>275 です >>276 詳しくありがとうございます 勉強になります >>277 手取り足取りスレでお世話になりました >>277 さんのお陰で目標までの道が見えたような気がします 本当に感謝しております HTMLとTXTそれぞれ3枚づつ置いてテストしてみようとしたのですが 上記の通り読み込めませんでした hello.plで試したところ読み込みはできているようなので 書き込み用のファイルを用意しておくべきなのかわからないです サーバなしで動くのでしたか私はサーバを通して操作するものかと勘違いしてましたすいません perlでできると教えてくれて本当にありがとうございます 板違いになるのかーショボーン どこに行けばいいのか・・・ みなさんありがとうございました
281 名前:277 mailto:sage [2008/04/02(水) 16:00:03 ID:???] スレ汚しまくりで、本当にごめんなさい。 > all とりあえず、物凄い勢いで板違い。>>275 さんには、教えてgoo辺りがお勧め。 当分消えよう。 >>278 間接でも偏頭痛がしたので勘弁してください。 放置するとめんどくさい流れになりそうだったので出てきました。すみません。 >>279 そこで正解です…。
282 名前:nobodyさん mailto:sage [2008/04/02(水) 17:09:09 ID:???] winならActivePerlでいいやん。
283 名前:nobodyさん mailto:sage [2008/04/02(水) 21:09:16 ID:???] おまえらstrawberryperl知らんのか
284 名前:nobodyさん mailto:sage [2008/04/03(木) 00:13:59 ID:???] 知らないかダメダメだから話題に出ない それぐらい察してくれるとありがたい
285 名前:nobodyさん [2008/04/03(木) 03:38:43 ID:x8vlzbgB] colinuxでいいじゃん
286 名前:nobodyさん mailto:sage [2008/04/03(木) 10:28:20 ID:???] いろいろ出すと混乱しちゃうぉw
287 名前:nobodyさん mailto:sage [2008/04/03(木) 13:05:14 ID:???] colinuxとクリネックスて似てるね
288 名前:nobodyさん mailto:sage [2008/04/03(木) 14:21:42 ID:???] 初心者ならActivePerl、中級者以降ならStrawberry Perlだな。
289 名前:nobodyさん mailto:sage [2008/04/03(木) 16:36:19 ID:???] 超上級者ですが ActivePerl 使ってます
290 名前:nobodyさん mailto:sage [2008/04/03(木) 18:06:58 ID:???] perl開発者ですがperl使ってません
291 名前:nobodyさん mailto:sage [2008/04/03(木) 19:03:25 ID:???] 自分はStrawberryPerlが有り難すぎるのだけど、前はActivePerl使ってた。 StrawberryPerlと比べてActivePerlはどういうメリットがあるのかな。 PPMが便利なこともあるけど、CPANが使いやすいStrawberryPerlの方が自分は便利。 ActivePerlの方を推す方の意見を聞きたいです。
292 名前:nobodyさん mailto:sage [2008/04/03(木) 19:56:47 ID:???] ActivePerl に一致する日本語のページ 約 560,000 件中 1 - 50 件目 (0.04 秒) Strawberry Perl に一致する日本語のページ 約 13,000 件中 1 - 50 件目 (0.37 秒) ActivePerl入れっぱなしだから特に探さなかった
293 名前:nobodyさん mailto:sage [2008/04/03(木) 20:05:15 ID:???] じゃ、今のActivePerl使ってみな。
294 名前:nobodyさん mailto:sage [2008/04/03(木) 20:05:58 ID:???] >>293 → >>291
295 名前:nobodyさん mailto:sage [2008/04/03(木) 22:08:39 ID:???] おーこんなんあったのか 存在すらしらなかった
296 名前:nobodyさん mailto:sage [2008/04/03(木) 22:33:14 ID:???] ActivePerlにはppmがあるし、最近は日本人がやってるppmリポジトリ(tcool)があるから 何かあっても日本語で済ませられるからなぁ。あそこだとCatalyst+DBIC+TT2もJiftyもPlaggerもそろってるし。
297 名前:nobodyさん mailto:sage [2008/04/04(金) 04:20:23 ID:???] winでweb開発するならvmwareとかcolinuxとかいれるだろ情交
298 名前:nobodyさん mailto:sage [2008/04/04(金) 10:07:57 ID:???] >>297 たしかにそれはもっともなんだが、クライアントの要望でWinで動かなきゃだめ、ってのでも 対応できて助かる。ほんと。
299 名前:nobodyさん mailto:sage [2008/04/04(金) 14:10:52 ID:???] vmwareとかcolinuxって何に必要なんだ? 特殊なことをするのでなければ、cronとSpeedyCGIぐらいしか思いつかない。
300 名前:nobodyさん mailto:sage [2008/04/04(金) 16:49:23 ID:???] サーバ機のOSにwin使うの?それならば何も言わんけど
301 名前:nobodyさん mailto:sage [2008/04/04(金) 17:29:46 ID:???] 話がどんどんズレてるぞおまいら。
302 名前:nobodyさん mailto:sage [2008/04/05(土) 00:28:43 ID:???] PerlからDBI::ODBCでMS Accessに接続しようと思います。 SQLに日本語が混じっているときSJISだとうまくいくのですが UTF8だと文字化けしてエラーになってしまいます。 Unicodeでも文字化けしない方法はないでしょうか?
303 名前:nobodyさん mailto:sage [2008/04/05(土) 03:41:48 ID:???] DB 側に文字コードを指定できたはず
304 名前:nobodyさん [2008/04/07(月) 18:30:35 ID:/Zogy0zf] もの凄く抽象的な質問ですがご容赦ください。 現在、mod_perl下で動いているプログラムがあります。 必要があり、これを修正してみたところ、何が悪かったのかそのままサーバダウン。 サーバダウン直前の挙動、エラーメッセージ、mod_perlの特性などから検証した結果、 プログラムの必要メモリ量が極端に増え、それに伴いメモリ不足で落ちたのではないかという結論に至りました。 さて、ここからが質問なんですが、 mod_perlのプログラムを書くにあたり、メモリ使用量などに関して、 コーディングのコツ、書くときの注意、メモリ使用量を見る方法などがありましたら教えてください。 参考になるサイトや書籍などでも構いません。 英語でも頑張って読んでみようとは思いますが、理解できるかどうかは甚だ怪しいです。
305 名前:nobodyさん mailto:sage [2008/04/07(月) 19:21:31 ID:???] プロを雇いなさい。
306 名前:nobodyさん mailto:sage [2008/04/07(月) 19:50:42 ID:???] 修正前は全く問題なかったのなら修正部分見るだけで簡単に解かるから楽ジャン
307 名前:nobodyさん [2008/04/07(月) 21:42:21 ID:TcHrwP/2] 元に戻す
308 名前:nobodyさん mailto:sage [2008/04/07(月) 23:10:26 ID:???] svn revert -R
309 名前:nobodyさん mailto:sage [2008/04/07(月) 23:27:22 ID:???] ちゃんと初期化、解放したったらえーんとちゃうのん?
310 名前:nobodyさん mailto:sage [2008/04/08(火) 03:52:16 ID:???] 一定回数の呼び出しでリブートするしかなかったっけか。
311 名前:nobodyさん [2008/04/08(火) 06:53:24 ID:O35wAre8] あるオブジェクトが属するクラス名(パッケージ名)はどこに入っているのでしょうか。 特定のオブジェクトを外部から判定したいとしたときなど、 文字列(ClassName=HASHxxxなど)を見て判断できるとも思いますが、 文字列変換が値の出力にオーバーライドされていたりするとダメですし・・ 例えば、あるサブルーチンの引数をClassNameオブジェクトに限る、といったときに判定したいのです。 よろしくお願いします。
312 名前:311 mailto:sage [2008/04/08(火) 07:27:45 ID:???] すみません見つかりました。判定に関しては if ($obj->isa('ClassName')) {・・・} この辺から探っていけそうでしたので、311の質問は一旦取り下げますm(_ _)m
313 名前:nobodyさん mailto:sage [2008/04/08(火) 09:05:59 ID:???] >309 してます。 今回の場合に限りますが、解放されてないリソースが溜まり続けると言うより、1回の必要量が大きすぎた模様。 >305 いや、そんなこと言われても。 >306-309 質問文は後半だ。
314 名前:nobodyさん mailto:sage [2008/04/08(火) 09:13:08 ID:???] >>313 >>1 【激速】mod_perl SpeedyCGI FastCGI【激速】 pc11.2ch.net/test/read.cgi/php/1149505269/
315 名前:nobodyさん mailto:sage [2008/04/08(火) 12:45:16 ID:???] >>304 mod_perlかcgiかに関係なく strictを付ける サイズの予想できないデータは一括取り込みしない ってのは当たり前だと思うんだが・・・ mod_perlで問題になりそうなのは 循環参照と意図しないクロージャくらいかな?
316 名前:nobodyさん mailto:sage [2008/04/08(火) 18:50:34 ID:???] >314 ありがとうございます。 宗教戦争が勃発してる魔境にしか見えないのが辛いところですが。 >315 ちょっとだけ内部の挙動を変えたらメモリ容量が4倍に膨れ上がってしまいまして…。 こういうのを、topコマンドでリアルタイムに監視する以外の方法があれば教えてください。
317 名前:nobodyさん mailto:sage [2008/04/08(火) 19:19:20 ID:???] 4倍で落ちるってどんだけだよ
318 名前:nobodyさん mailto:sage [2008/04/08(火) 19:20:40 ID:???] Devel::Sizeでどの変数がメモリ食ってるか調べてみれば?
319 名前:nobodyさん mailto:sage [2008/04/08(火) 19:26:09 ID:???] search.cpan.org/perldoc?Devel::Size perl.apache.org/docs/1.0/guide/performance.html#Measuring_the_Memory_of_the_Process 参考リンク
320 名前:nobodyさん mailto:sage [2008/04/08(火) 20:31:28 ID:???] >317 単純計算ですが、総計にしてメモリ1GBほど増加です。 >318 ありがとうございます >319 ちょうど英語にひぃひぃ言いながら読んでたところです。
321 名前:nobodyさん mailto:sage [2008/04/08(火) 20:55:45 ID:???] メモリ量が4倍になったならMaxClientsを1/4にすりゃいいじゃん。 とりあえずこのへんも参考にするといい iandeth.dyndns.org/mt/ian/archives/000624.html www.typemiss.net/blog/kounoike/20060212-64
322 名前:nobodyさん mailto:sage [2008/04/08(火) 22:02:45 ID:???] >>313 数100MBのデータを気軽に読み込んじゃうのは素人なんだってば。 だからプロを雇えと。
323 名前:nobodyさん [2008/04/08(火) 23:49:56 ID:ng1N9SG/] 与えられた文字列がutf8として正しいかどうか判断するのに utf8::decode($str); if ($str =~ /\P{IsASCII}/ and not (utf8::is_utf8($str))) { ### エラー } ってやってみましたが、あってますか?
324 名前:nobodyさん mailto:sage [2008/04/11(金) 10:40:16 ID:???] モジュールがPurePerlかどうかはどうやって判断すれば良いでしょうか?
325 名前:nobodyさん mailto:sage [2008/04/11(金) 11:53:06 ID:???] それは機械的に? それとも手動で?
326 名前:nobodyさん mailto:sage [2008/04/14(月) 15:21:25 ID:???] watalog.jugem.jp/?eid=135 ↑の人と同じ悩みなんですが、jugem.jpのRSSをLWP::Simple::mirrorでミラーリングしようとすると、 RSSの内容ではなく、HTMLの内容が帰ってくるのは、どうしてですか? RSSは以下のURLなのですが、引数を渡しているURLは、LWP::Simpleでは対応できないってでしょうか? watalog.jugem.jp/?mode=rss
327 名前:訂正 mailto:sage [2008/04/14(月) 15:22:02 ID:???] watalog.jugem.jp/?eid=135 ↑の人と同じ悩みなんですが、jugem.jpのRSSをLWP::Simple::mirrorでミラーリングしようとすると、 RSSの内容ではなく、HTMLの内容が帰ってくるのは、どうしてですか? RSSは以下のURLなのですが、引数を渡しているURLは、LWP::Simpleでは対応できないってことでしょうか? watalog.jugem.jp/?mode=rss
328 名前:nobodyさん mailto:sage [2008/04/14(月) 16:19:57 ID:???] >>327 UAで判定してる模様。 $ua = LWP::UserAgent->new(agent=>'IEみたいなUA'); でやってみ。
329 名前:nobodyさん mailto:sage [2008/04/14(月) 16:25:16 ID:???] >>328 ありがとうございます。いやらしいことしますね… LWP::Simple::mirrorを使っているので、全部書き直すか、例外処理を作るしかなさそうですねorz
330 名前:nobodyさん mailto:sage [2008/04/14(月) 16:33:55 ID:??? BE:212256083-DIA(100004)] LWP::Simple は $ua を Export 出来る
331 名前:nobodyさん mailto:sage [2008/04/14(月) 16:52:36 ID:???] >>328 の一行を追加すればいけるということでしょうか。 オブジェクト指向的な話(->とか)が全くわからないので、そういうところを避けながらコーディングしてきたのですが厳しいですね。
332 名前:327 mailto:sage [2008/04/14(月) 19:32:33 ID:???] 結局、LWP::UserAgentでUA偽装して、ミラーリングさせました。 今後はSimpleではなくて、こっちを使おう…
333 名前:nobodyさん [2008/04/14(月) 21:28:37 ID:vhVZb6UQ] CGI::Application を使ってみようかと考えてるPerl初心者です。 Web上でいろいろサンプルコードを見ていたんですが、 使いたいモジュールがある場合は CGI::Application::Plugin として利用するのがお決まりのように見えます。 実際、それが推奨スタイルなんでしょうか? Log::Handler が使いたかったのですが、 単純に use Log::Handler; して使うと何か不都合があるのでしょうか?
334 名前:nobodyさん [2008/04/15(火) 07:46:19 ID:m7oSRbUq] 再利用しやすいようにPluginにぶら下げてるだけなんじゃないの? 好きにしたらいいと思うよ
335 名前:nobodyさん [2008/04/15(火) 11:53:04 ID:7+9bkjp8] ありがとうございます!
336 名前:いしはら [2008/04/15(火) 18:41:44 ID:y4DgL3Q4] ------------------------------------------------ ☆簡易CTIサービス(1万5千円) s1s.jp/CTI/ ☆自動クリックサービス s1s.jp/ ☆ブログ自動更新 記事投稿 コメント書き込みアプリ s1s.jp/BLOG/ ------------------------------------------------ ヽ('A`)ノ ( ) 大金星!! ノω|
337 名前:nobodyさん mailto:sage [2008/04/16(水) 14:37:06 ID:???] 二項分布で確率1/AをB回の試行でちょうどC回引く確率を計算したいのですが、 これらをperlかPHPで計算する方法が分かる方いましたらアドバイス頂けないでしょうか。 式は見ても理解できないのでサンプルソースを頂けると助かります。
338 名前:nobodyさん mailto:sage [2008/04/16(水) 15:16:19 ID:???] 式を見ても理解できないとコーディングなんてできないだろw
339 名前:nobodyさん mailto:sage [2008/04/16(水) 16:03:06 ID:???] 「二項分布 perl」でぐぐれ
340 名前:nobodyさん mailto:sage [2008/04/16(水) 17:57:49 ID:???] 最初の方に出て来るJUG7のソースいじりましたが、 サイコロ10000回投げて1が1666回出る確率とかだそうとする際に 数値が大きすぎるのかバグります…。 以前調べた時のソースも、数値が小さければ問題無いものの、 規模を大きくすると1.#INFというエラーが返ったり。
341 名前:nobodyさん [2008/04/16(水) 21:19:23 ID:WbXSl+I/] お願いします。 与えられた文字列が大小文字同一視でハッシュのキーとして存在するかどうか、 調べる方法はないでしょうか。ハッシュキーは膨大な数あるので、配列にコピーとかは したくないです。よろしくお願いし明日。
342 名前:nobodyさん mailto:sage [2008/04/16(水) 21:28:03 ID:???] 1 hashを作るときに小文字(あるいは大文字)に変換して作る。 2 tieで1と同じ事を行う。 好きなほうをどうぞ。
343 名前:nobodyさん mailto:sage [2008/04/16(水) 21:32:57 ID:???] >>341 大小文字の区別はされるけどexistsって関数がある
344 名前:nobodyさん mailto:sage [2008/04/16(水) 21:39:38 ID:???] なるほど、ありがとうございます。 実は、元の正しい表記を後で取り出したいんですが、 ハッシュのvalueは空いてるので、そこに元の表記を入れておいて キーを大文字統一にしてみようと思います。 コピーするのと変わらないかもしれませんが。
345 名前:nobodyさん [2008/04/17(木) 04:13:49 ID:CjUpsUhE] お世話になります。 All UTF-8 でやってます。 さらに USE CGI しないURLデコードをやってみたところ、マルチバイト文字が文字化けするようになりました。 全部□になります。 ?#!c:/user/local/bin/perl510/bin/perl.exe use utf8; use encoding "utf8"; # ↓UTF8でPOSTされた情報を想定 my $str = '%E8%8C%B6%E6%B1%B2%E5%85%BC%E9%9B%91%E7%94%A8%E4%BF%82'; # ↓URLデコード(今回$strに+はないのでそのへんは省略) $str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg; # ↓出力 print "Content-type: text/html; charset=UTF-8\n\n"; print "テスト // START // $str<br>\n"; これでHTML全体としては正しく表示されているんですが、$str部分のみが文字化けします。 ウェブで原因を調べること丸1日、これについてどこにも情報がありませんでした……
346 名前:nobodyさん mailto:sage [2008/04/17(木) 07:21:16 ID:???] use utf8; use encoding "utf8"; # ↓UTF8でPOSTされた情報を想定(内部ではワイドキャラクタとして格納されてます) my $str = '%E8%8C%B6%E6%B1%B2%E5%85%BC%E9%9B%91%E7%94%A8%E4%BF%82'; utf8::encode($str); # 一旦UTF-8フラグを落として # ↓URLデコード(今回$strに+はないのでそのへんは省略) $str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg; utf8::decode($str); # UTF-8フラグを付け直す
347 名前:nobodyさん mailto:sage [2008/04/17(木) 09:58:36 ID:???] >>345 ,>>346 > # ↓UTF8でPOSTされた情報を想定(内部ではワイドキャラクタとして格納されてます) > my $str = '%E8%8C%B6%E6%B1%B2%E5%85%BC%E9%9B%91%E7%94%A8%E4%BF%82'; それデコードしたら、バイナリ(utf8フラグoff)のUTF-8文字列。 とりあえず、use utf8;とuse encoding "utf8"を外して、そのままprintしてみ。 ちゅうか、use utf8 とuse encoding "utf8"両方してる意味がわからん。
348 名前:nobodyさん [2008/04/17(木) 14:34:42 ID:FD3bsXbG] >>345 です 解決しました。情報に感謝します。 >>346 の内容を、Encode::〜でやりました。 こういうのって結構な落とし穴ですね。フラグのことはわかっているつもりでしたが……
349 名前:nobodyさん [2008/04/17(木) 20:17:29 ID:2zzFnXWL] 教えて君でスマンが、分かる人がいたら助けて。 CGI::Applicationパッケージを使っているんだけど、 param() 関数で、数字だけの長い「文字列」を受け取ると 数値リテラルとして、しかも丸められた値が返されちゃうんだけど、 文字リテラルとしてそのまま受け取れるよい方法ないかな?
350 名前:349 mailto:sage [2008/04/17(木) 22:21:21 ID:???] 自己レスです。 CGI.pmにまでさかのぼって調べた結果、 query()->param()は文字リテラルで返してました。 自分が書いた、表示する際の処理のバグでした。orz
351 名前:nobodyさん [2008/04/18(金) 00:03:02 ID:qXgVgrBZ] いつもすみません。 自分で作ったhash refの配列がデリファレンスできません。 $array[0]->{key} $array[0]{key} ${$array[0]}->{key} とか書いてみましたが様々なエラーが出ました。どう書いたらいいですか?
352 名前:nobodyさん mailto:sage [2008/04/18(金) 00:07:12 ID:???] すみません。問題を取り違えていました。デリファレンスはできてました。 ソートをしようと思い、下記のように書いたらhash refを配列扱いするなと言われます。 my @sorted = sort {$array[$b]->{score} <=> $array[$a]->{score}} @array; よろしくお願いします。
353 名前:nobodyさん mailto:sage [2008/04/18(金) 00:20:08 ID:???] ものすごく勘違いしてました。こういうことでした。 my @sorted = sort {$b->{score} <=> $a->{score}} @array;
354 名前:nobodyさん mailto:sage [2008/04/18(金) 10:01:49 ID:???] そういうときもあるよ
355 名前:nobodyさん [2008/04/18(金) 18:42:42 ID:J/rLxrZJ] 前に2項分布について質問した者ですが、 これだけでも教えてくれると助かります…。 1.#INF の意味はなんですか?インフィニティ? 検索しても#は検索対象にならないらしく、 *.INFの設定ファイルや関係無いものが出て来るばかりで…。
356 名前:nobodyさん mailto:sage [2008/04/18(金) 19:06:45 ID:???] 知らんがな
357 名前:nobodyさん mailto:sage [2008/04/19(土) 09:40:11 ID:???] インフォメーションじゃね? それかインフォーラム もしくはインフェルノ
358 名前:nobodyさん [2008/04/19(土) 12:48:02 ID:n4AN2xdT] www.semblog.org/wiki/?rna で配布されている、 RNAというアンテナソフトを使っています。 すでに動作してるのですが、summary部分のhtmlタグを除去したいと思います。 www-kasm.nii.ac.jp/~i2k/tmp/rna/rss/recent_entry.html のようにRSSを取得してくるCGIなのですが、 summary部分にhtmlタグが残ってしまいます。 ATOMやRSS2.0などでしょうか、 Yahoo!やexcite等RSSにhtmlタグが入ってるサイトを巡回すると htmlタグが入ってしまいます。 template/recent_template には <div class="summary"> <$RNAItemDescription$> </div> となっており、そのあたりを作ってると思われる lib/RNA/AntennaTree.pmの1029行目、 my $encoded_descript = encode($item->{channel}->{description}); の後に my $encoded_descript =~ s/<.*?>//g; を追加してみたところ、サマリー部分がなくなってしまいました。 開発がストップしてるCGIなので、なんとか改造して使い続けたいと思っています。 どうかご教示願います。
359 名前:nobodyさん mailto:sage [2008/04/20(日) 00:00:52 ID:???] いくら何でも冷たすぎじゃないかお前ら。 >>355 備長炭 自殺方法 でぐぐれ。それでダメなら二項分布 オーバーフローとか。
360 名前:nobodyさん mailto:sage [2008/04/20(日) 01:46:25 ID:???] >>358 現物ソース確認したわけじゃないけど ttp://naoya.dyndns.org/~naoya/mt/archives/000611.html の下の方にある remove_html を試してみたらどうかな。
361 名前:nobodyさん mailto:sage [2008/04/20(日) 02:10:18 ID:???] >>358 そのモジュールについては詳しくはわからないけど、もともとのソースをいぢるんじゃなくて、 それが吐き出したものを、自前で書き換えればいいんじゃね?
362 名前:nobodyさん mailto:sage [2008/04/20(日) 02:30:50 ID:???] 元のコード見なくても > my $encoded_descript = encode($item->{channel}->{description}); > の後に > my $encoded_descript =~ s/<.*?>//g; > を追加 って書いてるんだから my $str = "<strong>大切な</strong>文書"; my $str =~ s/(.)/$1/g; # 行頭の何かが余計 print length($str); こういうことじゃないの。
363 名前:nobodyさん mailto:sage [2008/04/20(日) 16:44:58 ID:???] ヒアドキュメント内でハッシュリファレンスを使う場合はどのようにすればよいのでしょうか? $text =<<EOL; name = $h->{'name'} mail = $h->{'mail'} EOL とやっても変数が展開されません。 仕方ないのでハッシュにデリファンスしてますが、 方法があったら教えてください。
364 名前:nobodyさん mailto:sage [2008/04/20(日) 17:36:03 ID:???] 本当はシングルクォートで括ってね?
365 名前:nobodyさん [2008/04/20(日) 20:52:48 ID:tHisgd6U] オリジナルの携帯サイトアクセスランキングを作っています。 OUTをカウントするためなんすけど、アンカーから自前のCGIページを通過させてリンク先を表示させるにはどうすればいいですか?
366 名前:nobodyさん mailto:sage [2008/04/21(月) 00:00:18 ID:???] 自前のCGIページを通過させるアンカーを出力すればよいと思います。
367 名前:nobodyさん mailto:sage [2008/04/21(月) 18:56:21 ID:???] >>363 my $h = {name=>'john', mail=>'john@example.net'}; my $text =<<EOL; name = $h->{'name'} mail = $h->{'mail'} EOL print $text; こんな感じ。
368 名前:358 mailto:sage [2008/04/23(水) 09:11:49 ID:???] >>360 , >>361 , >>362 ありがとうございます。 remove_html、使いたいのですが使い方がわかりません... # naoya.dyndns.org/~naoya/mt/archives/000611.html sub remove_html { my ($str) = @_; my $ret; if (defined $str) { my $p = HTML::TokeParser->new( \$str ) or die "$!"; do { my $plain = $p->get_text; $ret .= $plain; } while (my $token = $p->get_tag); } $ret; } を lib/RNA/AntennaTree.pm の最下部に追記して、 my $encoded_descript = encode($item->{channel}->{description}); の後に見よう見まねで my $encodec_descript = &remove_html(); としてみましたが変わらずでした。
369 名前:nobodyさん mailto:sage [2008/04/23(水) 12:47:07 ID:???] m_unit.plというライブラリがほしいんですがググっても出てきません どこで手に入れる事ができるでしょうか?
370 名前:nobodyさん mailto:sage [2008/04/23(水) 13:05:00 ID:???] >>369 ググっって出てくる奴とは違う物?
371 名前:↑ mailto:sage [2008/04/23(水) 13:08:34 ID:???] ごめんなさい間違えました(><)
372 名前:nobodyさん mailto:sage [2008/04/24(木) 18:43:40 ID:???] ABCXXXDEF という文字列から ABCとDEFを削除してXXXのみを表示させたい場合はどうすればよいのでしょうか? $moji = ABCXXXDEF; $ans = $moji からABCとDEFを削除; print "$ansです\n" という具合でいいんでしょうか? このABCとDEFを消す処理の部分がわかりません。
373 名前:nobodyさん mailto:sage [2008/04/24(木) 18:47:46 ID:???] $moji =~ tr/ABCDEF//d; print $moji;
374 名前:nobodyさん mailto:sage [2008/04/24(木) 18:48:17 ID:???] >>372 $moji =~ s/ABC|DEF//g; $ans = $moji
375 名前:nobodyさん mailto:sage [2008/04/24(木) 18:50:21 ID:???] >>373 >>374 ありがとうございました。 助かります。
376 名前:nobodyさん [2008/04/26(土) 13:15:07 ID:flUVuiqJ] basenameでファイル名を取り出したいのですが、ブラウザが動いているOSの種類によって、 区切りが/であったり\であったりとまちまちです。 perlはLinux上で動いているので、デフォルトでは、/で区切られている場合しか、ファイル名を取り出せません。 \で区切られている場合でも、取り出せるようにするにはどのようにしたらよいのでしょうか? fileparse_set_fstypeでMSWin32を指定してしまうと今度は、Unixからアクセスしてきた場合にうまくいきません。
377 名前:nobodyさん mailto:sage [2008/04/26(土) 13:19:19 ID:???] んなもんアクセスしてきたOSの種類で使いわけりゃいい話だろボケ こんなもん中学生でも分かるぞカス死ね
378 名前:nobodyさん [2008/04/26(土) 16:13:45 ID:flUVuiqJ] もしブラウザがOSに関する情報を送ってこなかったらどうすればよいのでしょうか?
379 名前:nobodyさん mailto:sage [2008/04/26(土) 16:23:13 ID:???] >>378 ファイルの有無を判断して、 どっちのデリミタで切るか、 判断したら?
380 名前:nobodyさん mailto:sage [2008/04/26(土) 17:01:10 ID:???] アクセスしてきたOSは関係ない。 Perlが動いているサーバーのOSが関係する。 そして、basenameは動いているOSによって区切りを/か\か自動的に 判断してくれるので便利に使える。 サーバーがWindowsでもLinuxでもbasenameは正しく動いてファイル名を取り出せる。 取り出せない場合は、何か別の原因。
381 名前:nobodyさん mailto:sage [2008/04/26(土) 19:45:43 ID:???] type=fileで送られてくるファイル名の話じゃないのか?
382 名前:nobodyさん [2008/04/26(土) 21:48:20 ID:vQRq4Omz] だいたいみなさんの、perl普通にコード書き込みできるまでに要した 時間と日数おしえてもらえませんか?時間とか1日何時間くらいしてます?
383 名前:nobodyさん mailto:sage [2008/04/26(土) 22:09:54 ID:???] 意味が。
384 名前:nobodyさん mailto:sage [2008/04/26(土) 22:14:17 ID:???] >>382 もっと、日本語を勉強した方がいいよ
385 名前:nobodyさん mailto:sage [2008/04/26(土) 22:49:57 ID:???] >>382 皆さんは「週何日、1日当たり何時間」なんていう時間割みたいな方式で 取り組んできたわけじゃないので、そういうのはよくわかんないのです。 そりゃ、そんな方式で堅苦しく取り組んできた人もいるかもしれないけど。 あなたが今までにちんちんを何ストロークしてきたかが不明なのと似てます。
386 名前:nobodyさん [2008/04/27(日) 00:52:54 ID:G3KB/HmG] mod_rewriteでURLを書き換えた時に%2Fがあると404エラーになってしまうので スラッシュをURLエンコードさせたくないのですが、可能でしょうか?どなたか助けてください・・ p://example.net/dir/index.cgi?name=<em>hoge</em> このように、どうしてもタグが含まれてしまうURLなので困ってます。 見るからに初心者ですが、どうかよろしくお願いします。
387 名前:nobodyさん mailto:sage [2008/04/27(日) 01:20:29 ID:???] >>386 不可能。
388 名前:386 [2008/04/27(日) 02:55:07 ID:G3KB/HmG] >>387 そうですか・・ 諦めて他に方法がないか試行錯誤してみます ありがとうございました。
389 名前:nobodyさん mailto:sage [2008/04/27(日) 23:26:09 ID:???] >>382 10時間ぐらいかな。 もっとも、Perl以前にawk, sed, C などの下地があったわけだが。
390 名前:nobodyさん mailto:sage [2008/04/27(日) 23:35:33 ID:???] 普通がどの程度か全く分からないけど、とりあえず動く掲示板を作るのに1日1〜2時間ほど コード書いて1週間かかった気がする そんな自分は C (すっかり書けないけど、ポインタで躓くまでは書いてた)、VB (アプリをいくつか作ってた) の経験ありです。
391 名前:nobodyさん mailto:sage [2008/04/27(日) 23:39:03 ID:???] Perlでバッチ処理を書くのはすぐ出来るけど、 Webアプリ(cgi)は時間がかかると思う。
392 名前:nobodyさん mailto:sage [2008/04/27(日) 23:44:48 ID:???] そんな貴方にCGI.pmですよ
393 名前:nobodyさん [2008/04/30(水) 17:01:56 ID:9OxUbc+M] あの、乱数についてなのですが、100~150までの間でランダムな数をスカラー変数に格納するにはどうすればいいでしょうか?
394 名前:nobodyさん mailto:sage [2008/04/30(水) 17:13:24 ID:???] my $rndnum = rand(51) + 100 rand(51) 0 〜 51 未満を生成 (未満は 51 を含まないので 50 以下の数字が現れる) +100 下限値である 100 を加えてやる 以上
395 名前:nobodyさん mailto:sage [2008/04/30(水) 17:14:49 ID:???] int
396 名前:nobodyさん mailto:sage [2008/04/30(水) 17:19:40 ID:???] my $rndnum = int(rand(51)) + 100;
397 名前:nobodyさん mailto:sage [2008/04/30(水) 17:19:49 ID:???] 忘れてたw >>395 thx my $rndnum = int(rand(51) + 100);
398 名前:nobodyさん mailto:sage [2008/04/30(水) 18:11:00 ID:???] >>393 の質問ではintなしの>>394 が正解とすべきなんじゃないか? 質問者の質問が悪いところまでフォローして手取り足取りするのが役目?
399 名前:>>393 [2008/04/30(水) 18:26:54 ID:9OxUbc+M] 皆さんどうもありがとうございます。 確かに>>398 さんの言うとおりです。わざわざフォローして下さった親切なお二方に感謝します。
400 名前:nobodyさん mailto:sage [2008/04/30(水) 18:38:47 ID:???] すいません。 どうも下記例のforeachのループの中で、さらにwhileのループを 回せないのですが、たぶん簡単な理由だとは思うのですが、 お助け下さい。 他にもこのようなforeachのループの中で、foreachのループも回せないと 思います。 foreach $number(@number){ while (<F2>) { print "$number\n"; if (/$number/) { print "マッチしました\n"; print F3; } } }
401 名前:nobodyさん mailto:sage [2008/04/30(水) 19:09:01 ID:???] >>400 <F2>で同じ行数を複数回とりだしたい感じ? だとしたらヒント:seek
402 名前:nobodyさん mailto:sage [2008/04/30(水) 19:10:23 ID:???] >>400 1回目のforeachが終わったときに<F2>が空になる
403 名前:nobodyさん mailto:sage [2008/04/30(水) 19:48:00 ID:???] whileに入る前に開きなおすのも手だな
404 名前:nobodyさん [2008/04/30(水) 20:17:59 ID:GavbPT5W] 一回目のループで開いてるファイルのファイル位置が終端にあるため 2周目はファイルを読み込むループが発生しません 解決法は2つ ・While の直前でファイルを開くようにする ・While の直前で seek を使ってファイル位置を先頭に戻す です。 負荷は後者の方が幾分か軽いです
405 名前:nobodyさん mailto:sage [2008/04/30(水) 20:28:06 ID:???] my @lines = <F2>; 場合によってはこれもありかなと思った。無駄にメモリ食うけど。
406 名前:nobodyさん mailto:sage [2008/04/30(水) 20:47:41 ID:???] whileの中でforeachじゃ駄目なん?
407 名前:400 mailto:sage [2008/04/30(水) 23:43:57 ID:???] すいません。seekというのは初めて知りました。 1回目のforeachが終わったときに<F2>が空になる ってマジですか。 例のループにseekを追加して、動くようにしていただけませんか? お願いします。
408 名前:nobodyさん mailto:sage [2008/05/01(木) 01:39:53 ID:???] >>400 初めてのPerlと続・初めてのPerl買えばいいよ。
409 名前:nobodyさん mailto:sage [2008/05/01(木) 12:48:54 ID:???] コストの高い I/O をメインにループさせたほうがいいっすね open(F2, "hoge.txt"); while (<F2>) { foreach $number(@number){ 〜 } } close(F2);
410 名前:nobodyさん mailto:sage [2008/05/01(木) 13:18:21 ID:???] >>407 自分でやれ。 できないなら金払って業者つかえ。 代行するところじゃなく、自分で作るためのヒントを与えるところだ。 ここまでヒントがそろったらあとは調べながらできる。
411 名前:nobodyさん mailto:sage [2008/05/01(木) 13:51:56 ID:???] あとね、初心者なんだから記述を略すな ちゃんと意味がわかってから略すように汁
412 名前:400 mailto:sage [2008/05/01(木) 23:38:01 ID:???] >409 Thx 明日試してみます。seek(F2, 0, 0)では動かなかった。 >410 GW中くらい、自宅警備を止めてみたら? >411 省略ハァ? 汁?
413 名前:409,411 mailto:sage [2008/05/01(木) 23:46:36 ID:???] そういう口調ならてめぇで解決しろよ能無しチンカス糞野郎
414 名前:nobodyさん mailto:sage [2008/05/02(金) 00:07:00 ID:???] > 省略ハァ? 汁? ワロタ
415 名前:nobodyさん mailto:sage [2008/05/02(金) 05:46:04 ID:???] まあ、なんだ 「ものを学ぶ姿勢」ってやつを身に着けないと成長できないよね
416 名前:nobodyさん mailto:sage [2008/05/02(金) 08:12:32 ID:???] きっとこの人はこれからさきの人生も困ったら自分の力で解決しようとせず人を頼りにして生きていくんだろうな。 これ10代だったら笑って流せるけど、20代以上で本気で言ってたら深刻ww
417 名前:nobodyさん mailto:sage [2008/05/02(金) 10:22:44 ID:???] 定期的に沸くから慣れろwww
418 名前:nobodyさん mailto:sage [2008/05/02(金) 10:32:20 ID:???] 自分の書いてるのが略記だって事すらも気がついてないんだろうな あと、これはおそらくは宿題だなw
419 名前:nobodyさん mailto:sage [2008/05/02(金) 11:18:57 ID:???] 延々と質問者を叩く・・・キモッ とっくに質問者は消えてることに気づけよ禿げ
420 名前:nobodyさん mailto:sage [2008/05/02(金) 12:28:02 ID:???] >>419 僕の予想が確かなら、質問者なら君のパソコンのモニタの前に居るよ。
421 名前:nobodyさん mailto:sage [2008/05/02(金) 12:37:17 ID:???] >>420 はぁ?俺か? ちゃうっちゅーねん あほか
422 名前:nobodyさん mailto:sage [2008/05/02(金) 13:12:28 ID:???] ノリが一緒でわろたwww
423 名前:nobodyさん mailto:sage [2008/05/02(金) 13:34:20 ID:???] お前の粘着っぷりのほうがおもろい 医者いったほうがええんちゃうかw リアルでアレかw
424 名前:nobodyさん mailto:sage [2008/05/02(金) 13:43:58 ID:???] 日本語が変でござるよ
425 名前:nobodyさん mailto:sage [2008/05/02(金) 14:15:25 ID:???] ネット上での似非関西弁って餓鬼が凄む時に巻き舌になるのに似てる
426 名前:nobodyさん mailto:sage [2008/05/02(金) 14:47:41 ID:???] それは言わないのが優しさだったのに・・・
427 名前:nobodyさん mailto:sage [2008/05/02(金) 15:08:52 ID:???] 質問者以外が必死になる理由が見つからない
428 名前:nobodyさん mailto:sage [2008/05/02(金) 18:44:35 ID:???] ぼくが一番、perlをうまく操れるんだ!
429 名前:nobodyさん mailto:sage [2008/05/02(金) 23:07:56 ID:???] >>427 思い込み激しいとか言われへん? 回りに迷惑かけても気づかないタイプだな 回答もしないのに罵倒するのはお前だけやろ 頭変すぎてわからんかw
430 名前:nobodyさん mailto:sage [2008/05/02(金) 23:28:43 ID:???] >>429 そんならお前が回答してやれよ。 出来るもんなら。www
431 名前:nobodyさん mailto:sage [2008/05/02(金) 23:45:27 ID:???] >>429 なんでそんなに必死なん?
432 名前:nobodyさん mailto:sage [2008/05/02(金) 23:59:11 ID:???] GWで暇なんだろ
433 名前:nobodyさん mailto:sage [2008/05/03(土) 02:50:47 ID:???] GW、通勤とか会社の中とか人が少なくていいよね。
434 名前:nobodyさん mailto:sage [2008/05/03(土) 03:07:39 ID:???] いいですよね。客からの電話も鳴りませんし。
435 名前:nobodyさん mailto:sage [2008/05/03(土) 10:04:09 ID:???] 泣いてませんか?
436 名前:nobodyさん mailto:sage [2008/05/03(土) 18:44:15 ID:???] 内線もならないよね。
437 名前:nobodyさん mailto:sage [2008/05/03(土) 19:02:10 ID:???] でもトイレに花子さん居るよね。
438 名前:フー子 [2008/05/04(日) 19:36:48 ID:798fbSDd] Perl の CGI::Base とか CGI::Request モジュールって、 何のためにあるの?どうやって使うの?
439 名前:nobodyさん mailto:sage [2008/05/04(日) 19:50:31 ID:???] >>398 初心者質問スレで何言ってるんだ。
440 名前: ◆TWARamEjuA mailto:sage [2008/05/04(日) 20:01:51 ID:??? BE:3267465-2BP(7082)] >>438 君かわいいね。 ・・・ぶつ森のスレかとオモタorz... ttp://search.cpan.org/~mrjc/cvswebedit-v2.0b1/cvs-web/lib/CGI/Base.pm ttp://search.cpan.org/~mrjc/cvswebedit-v2.0b1/cvs-web/lib/CGI/Request.pm を眺めてみればよろしいかと。 例文を眺めればだいたい何がしたいのかが見えてくるかと。 英文は無理に読まなくてもよろしいかと。
441 名前:nobodyさん mailto:sage [2008/05/04(日) 20:22:15 ID:???] pmという拡張子、ガクブル
442 名前:nobodyさん [2008/05/05(月) 14:08:42 ID:GD7pTJpy] CGI掲示板を自作していますが、書き込み送信メールのSendmailによる送信処理でつまづきました。 以下のように記述すると、管理人である自分には登録メールが送られますが、 管理人以外に、書き込みした人にも登録確認メールが送られるようにしたいんです。 #Sendmailによる送信処理 if (open(MAIL,"| $sendmail -t")){ print MAIL "X-Mailer:legend2\n"; print MAIL "To: $administrator\n"; print MAIL "Errors-To: $administrator\n"; print MAIL "From: $administrator\n"; print MAIL "Subject: $subject\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "$mail_comment\n"; print MAIL "\n"; close(MAIL); } } 以下のどれかを使うのでしょうか? print SENDMAIL "From: $sender <$from>\n"; print SENDMAIL "To: $to\n"; print SENDMAIL "Cc: $cc\n"; print SENDMAIL "Bcc: $bcc\n"; どうすれば良いか御教授下さい。宜しくお願いします。
443 名前:nobodyさん mailto:sage [2008/05/05(月) 14:20:17 ID:???] >>442 # CGIは板違いだが、この処理自体はCGIと関係がないので。 if文のブロックを、Toヘッダだけ「書き込みした人」のアドレスにしてもう一度処理するか、 Toを「書き込みした人」のアドレス、CcまたはBccを「管理人」のアドレスにするか。 Errors-Toヘッダはobsoluteだった気がします。 envelopeアドレスを指定するべし。sendmailに-fオプションに続けてアドレスを指定する。 ttp://sonic64.com/2004-11-07.html
444 名前:nobodyさん mailto:sage [2008/05/05(月) 16:36:56 ID:???] つーか、今時、open(MAIL,"| $sendmail -t")やErrors-To:とか前世紀に 書かれた古文書を元にCGI作るな。めーわくだ。
445 名前:nobodyさん mailto:sage [2008/05/05(月) 18:19:44 ID:???] 批判だけならゾウリムシにもできる 例文または参考 URL ぐらい提示すればいいじゃない
446 名前:nobodyさん mailto:sage [2008/05/05(月) 19:20:18 ID:???] ただでは断る。
447 名前:nobodyさん mailto:sage [2008/05/05(月) 20:15:30 ID:???] >>446 しね
448 名前:nobodyさん mailto:sage [2008/05/05(月) 21:17:57 ID:???] 役立たずなテキストに騙される処を指摘してやったのに随分な言い草だな。
449 名前:BEET mailto:X [2008/05/05(月) 21:36:20 ID:???] z-z.jp/index.cgi ここのスクリプト抜きたいんですけど、どうしたらいいのですか?
450 名前:nobodyさん mailto:sage [2008/05/05(月) 21:39:44 ID:???] >>449 むり
451 名前:nobodyさん mailto:sage [2008/05/05(月) 21:57:12 ID:???] >>449 ハッキングすればできるかもしれない。
452 名前:nobodyさん mailto:sage [2008/05/05(月) 22:16:06 ID:???] スクリプト抜くってどういう意味なんですか?
453 名前:nobodyさん mailto:sage [2008/05/05(月) 22:44:54 ID:???] ハァハァするんじゃないかな。
454 名前:nobodyさん [2008/05/05(月) 23:21:45 ID:V/xhfGfA] ftpで接続しないとスクリプトは抜けないでしょう
455 名前:BEET mailto:BEET [2008/05/06(火) 00:42:09 ID:???] 回答ありがとう。 ハッキングって.. 簡単なのかな? ソフトはできるだけ使いたくないな
456 名前:BEET mailto:progammer.co.jp [2008/05/06(火) 00:45:09 ID:???] 追記なんですけど このレンタル掲示板の管理パスをクラックされて、改竄されたんだけど、どうやってクラックしてるのかな?
457 名前:nobodyさん [2008/05/06(火) 00:49:33 ID:fJq/GBDg] (`・ω・´)??
458 名前:nobodyさん mailto:sage [2008/05/06(火) 00:50:15 ID:???] >>455-456 >>1 を100回声を出して読め。 読み終わったら610と三ポールのミックスカクテル飲め。
459 名前:nobodyさん [2008/05/06(火) 00:51:09 ID:fJq/GBDg] (`・ω・´)ソフト使ってるだろww
460 名前:nobodyさん mailto:sage [2008/05/06(火) 09:09:26 ID:???] Windowsローカルに入れたActivePerlで cpan > install XML::ATOM::Feed したのに、それを500エラーになってしまいます (useしてるところをコメントアウトすると通る) moduschで見たら「存在しないか、ロード出来ない」っぽい なぜでしょうか…?
461 名前:nobodyさん mailto:sage [2008/05/06(火) 16:59:23 ID:???] >>442 BCCで目的は達成できると思うけど、 自分のメールアドレスを、スパムを送りたい先などにされると 簡単にスパムの踏み台になるから気をつけてね。
462 名前:nobodyさん [2008/05/06(火) 22:50:17 ID:wGWcI8Lv] AUTOLOADってのを初めて使ってみたんです。 未定義の関数を読んだら無事AUTOLOADが呼ばれたんですが、 変数$AUTOLOADを参照するとGlobal symbol〜っていうエラーが出てしまいます。 AUTOLOADを使う場合はno strictしていいものでしょうか。
463 名前:nobodyさん mailto:sage [2008/05/07(水) 00:05:35 ID:???] use strict; use warnings; sub AUTOLOAD { our $AUTOLOAD; print $AUTOLOAD; } foo();
464 名前:nobodyさん mailto:sage [2008/05/10(土) 23:18:32 ID:???] URL転送なんだけど今こうしてます↓ #!/usr/bin/perl print "Location: *****\n\n "; これに転送するまでHTMLの<meta content="x">みたいに 一定時間ウェイトかける事って出来るのでしょうか?
465 名前:nobodyさん mailto:sage [2008/05/10(土) 23:19:01 ID:???] いいえ
466 名前: ◆TWARamEjuA mailto:sage [2008/05/11(日) 01:16:36 ID:???] 転送するまでひと寝入りする。
467 名前:nobodyさん mailto:sage [2008/05/11(日) 02:11:14 ID:???] >>464 いい事いうじゃねえか。 出来るんだな? 今すぐ頼むぞ。
468 名前:nobodyさん [2008/05/11(日) 13:18:10 ID:yMOlxpUv] print qq{あいうえお @{[1+1]} かきくけこ }; 無名配列のリファレンスとデリファレンスを使ってクォート内に式を埋め込めます。 これ気に入っててよく使うんですが、これのスカラーリファレンス版ってできませんか? \$() 無名スカラーって存在しないんですかね。 いやそもそも@{[]}に式を埋め込めるのはそこをクォート内ではないと認識するからなわけで。 いや、う〜ん。確かこれなんかいい方法があったような期がするんですが。
469 名前:nobodyさん [2008/05/11(日) 23:02:44 ID:Vy6R2X5C] Perlスクリプトの処理が全て完了する前に クライアントとの接続を明示的にクローズする方法は ありませんでしょうか? 以下のようなことが実施したいです。 どなたかよろしくお願いします。 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html><body>なんちゃら</body></html>"; ## ここで明示的にクライアントとのConnectionをクローズしたい。 ## ここからクライアント側に影響がない時間がかかる別の処理を実施したい。 &HokaNoShori(); exit;
470 名前:nobodyさん [2008/05/12(月) 01:08:40 ID:CYOIx0A2] perlで重い処理をさせるのが困ります。 例えばパソコンの30%の能力だけ使わせるとかってできませんか?
471 名前:nobodyさん mailto:sage [2008/05/12(月) 01:16:51 ID:???] >>470 それは知らないけど、nice付けて起動とかしてみては?
472 名前:nobodyさん mailto:sage [2008/05/12(月) 03:09:36 ID:???] >>468 qq{ ${\do {1+3}} }
473 名前:nobodyさん mailto:sage [2008/05/12(月) 04:50:44 ID:???] >>469 close(STDOUT);
474 名前:nobodyさん mailto:sage [2008/05/12(月) 10:21:48 ID:???] >>469 fork
475 名前:nobodyさん mailto:sage [2008/05/12(月) 16:03:50 ID:???] WindowsXPでActivePerlを使って クリップボードにあるテキストに処理を加えて クリップボードに戻すプログラムを作ろうとしています。 Win32::Clipboardを使用しているのですが、Unicodeだと化けてしまいます。 Unicodeでも化けないで処理できる方法はあるでしょうか?
476 名前:nobodyさん [2008/05/12(月) 16:08:19 ID:CYOIx0A2] >>472 思い出した! print qq{ ${ \(1+1)} }; でしたね。 なるほどなるほど。${}これでデリファレンスができるというわけだ。
477 名前:nobodyさん mailto:sage [2008/05/12(月) 17:20:30 ID:???] Win32::Clipboard が受け取るのは Shift_JIS 固定っぽいです Encode でShift_JIS にして渡してみたらどうりますか?
478 名前:nobodyさん mailto:sage [2008/05/12(月) 18:00:21 ID:???] >>477 回答ありがとうございます。 Shift_JISにない文字も処理したかったので Win32::Clipboardでは無理と言うことですね。 Win32::Clipboard以外でクリップボードを利用できるものはありますか?
479 名前:nobodyさん mailto:sage [2008/05/12(月) 20:22:51 ID:???] 文字化けしないようにする方法教えてください use LWP::Simple; my $page = get('hogehogehoge.jp/ '); getprint('hogehogehoge.jp/ '); print $page
480 名前:nobodyさん mailto:sage [2008/05/12(月) 21:36:53 ID:???] >>479 ヒント:Jcode
481 名前:nobodyさん mailto:sage [2008/05/13(火) 01:04:45 ID:???] perl 文字化け でググれカス
482 名前:479 mailto:sage [2008/05/13(火) 03:44:42 ID:???] エスジス保存しておいたソースファイルをEUCに変更保存してみたけど 何も変わんないですよ
483 名前:nobodyさん mailto:sage [2008/05/13(火) 06:45:22 ID:???] >>482 「ソースファイル」ってのが上の us-ascii で足りそうなコードのことだったら SJIS → EUC しても何も変わんないですよ。 環境その他も書かれてないし、変換に興味なさそうなので perl hoge.pl > test.html して「まともなエディタで見れば文字化けしない」でいいのかも。
484 名前:nobodyさん mailto:sage [2008/05/13(火) 13:57:38 ID:???] >>464 Location:を表示する前にwaitをいれればおk
485 名前:nobodyさん mailto:sage [2008/05/17(土) 19:31:00 ID:???] $obj = new Class; $obj = Class->new(); この二つの違いは何ですか?
486 名前:nobodyさん mailto:sage [2008/05/17(土) 20:03:56 ID:???] おんなじ。どっちのClassクラスのコンストラクタを呼んでるだけ。 Classってサブルーチンが定義されてるときに問題がおきることがあるので、 $obj = Class->new; の形式のほうが推奨されるけど。
487 名前:nobodyさん mailto:sage [2008/05/17(土) 23:09:13 ID:???] >486 ありがとんです
488 名前:nobodyさん mailto:sage [2008/05/18(日) 11:25:25 ID:???] 俺はコンストラクタを呼び出すときだけはnew Classってしてあとはぜんぶ$obj->sub()ってするかな。
489 名前:nobodyさん mailto:sage [2008/05/19(月) 06:36:14 ID:???] なんだか、急にCPANでエラーで全く動かなくなったので、いろいろ調べてみたら、 ERRNO.pmが、MSWin32-x86-multi-thread-5.00(Windows Updateでいつの間にか変わってた)を弾いてた。 とりあえず、ERRNO.pmを書き換える(!)ことで対処したんだけど、 他に同じトラブルあってる人いません?
490 名前:がんちゃん mailto:sage [2008/05/19(月) 10:02:27 ID:???] perlでImage::MagickのAnnotateを使って画像と文字を合成できたのですが 出来上がった画像を右クリックして保存しましたが そのファイルが開けません。 何が原因でしょうか。宜しくお願いします。
491 名前:nobodyさん mailto:sage [2008/05/19(月) 11:27:27 ID:???] >>490 開けないとは具体的にどういうこと? 単に、変なファイル名(拡張子)で保存してしまって、ダブルクリックしても関連づけの問題で開けないってことではなくて?
492 名前:がんちゃん mailto:sage [2008/05/19(月) 12:15:34 ID:???] うっせーよ!それぐらい分かるっての!腐った回答してんじゃねぇよwww
493 名前:がんちゃん mailto:sage [2008/05/19(月) 12:29:05 ID:???] * * * + うそです n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
494 名前:がんちゃん mailto:sage [2008/05/19(月) 12:32:08 ID:???] なんだここの人たちはこれぐらいの質問も答えられないの? 回答者が初心者のスレだったのか・・・
495 名前:がんちゃん mailto:sage [2008/05/19(月) 12:35:01 ID:???] * * * + うそです n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
496 名前:nobodyさん mailto:sage [2008/05/19(月) 14:06:12 ID:???] print "Content-type: image/jpeg\n\n"; binmode STDOUT; $image->Write('jpeg:-'); ソース晒せや。
497 名前:nobodyさん mailto:sage [2008/05/19(月) 14:11:40 ID:???] なにこの流れ・・・
498 名前:nobodyさん mailto:sage [2008/05/19(月) 15:48:41 ID:???] 質問の仕方も知らないというか、質問の文章すら正しく書けない馬鹿が多すぎ Perl云々の前に日本語学校行け
499 名前:nobodyさん mailto:sage [2008/05/19(月) 15:59:52 ID:???] \E
500 名前:nobodyさん mailto:sage [2008/05/19(月) 16:39:50 ID:???] はい、次
501 名前:nobodyさん mailto:sage [2008/05/19(月) 16:41:56 ID:???] >>498 お前の文章が一番変だわ
502 名前:nobodyさん [2008/05/19(月) 18:36:38 ID:82E4EJS9] すみません。ド素人です。 質問です。 Can't locate GD/Image.pm in @INC (@INC contains: C:/perl/site/lib C:/perl/lib .) というソフトウェアエラーが出て、CGIを実行できません。 どうかどうか、教えてください。
503 名前:nobodyさん mailto:sage [2008/05/19(月) 18:38:59 ID:???] GD を入れてください はい次
504 名前:nobodyさん [2008/05/19(月) 18:39:34 ID:82E4EJS9] GDは入れてるんですけど、image.pmってのがなにか、わかんないんです。。。
505 名前:nobodyさん mailto:sage [2008/05/19(月) 18:44:49 ID:???] GD-Image-Thumbnail でも居れておきゃえぇんとちゃうのん?
506 名前:nobodyさん [2008/05/19(月) 18:45:58 ID:82E4EJS9] 505さん ありがとうございますぅやってみます。
507 名前:nobodyさん mailto:sage [2008/05/19(月) 18:47:44 ID:???] search.cpan.org/~lds/GD-2.39/GD/Image.pm.PLS
508 名前:nobodyさん [2008/05/19(月) 18:54:23 ID:82E4EJS9] 507さん。。ありがとうです。 けど、このページの、なにをどうすればいいのか。 わかりません どうしようもない素人なので。。
509 名前:nobodyさん mailto:sage [2008/05/19(月) 19:12:16 ID:???] *.pmってのはPerlモジュール エラーの内容は「このモジュールがみつからないよパパ」 →インスコor場所確認 とりあえずモジュールが入ってるか確認する →ぐぐる 入っていない場合、モジュールをインスコする →ぐぐる 入っている場合、パスを確認する →ぐぐる
510 名前:nobodyさん mailto:sage [2008/05/19(月) 19:26:15 ID:???] GDのバージョンを2.39に上げれば解決。
511 名前:nobodyさん mailto:sage [2008/05/19(月) 19:58:48 ID:???] 「初心者」「素人」は分からないからフルサポートしてもらえる理由になりません。
512 名前:nobodyさん [2008/05/19(月) 20:03:39 ID:82E4EJS9] GD2.39の中のGD.pmとGDフォルダを /perl/libの中にドラック&ドロップしてるんです。 これは、どこかのサイトに書いてあったので。しました。 そしたら、エラーがでて。GD/Image.pmがどうのこうのとなってまして。 505さん507さん509さん510さんの言葉も、正直、理解しきれてない状況です。 まず、インスコというのが、コマンドプロンプトでするらしいとどこかに書いてて、 してみたんですけど。まず、「ppm」とすると、perlpackagemanagerが起動して、 その中に、GDがなくて。どやってインストールしていいのかも、わかんない感じです。 すみません長々と。どうかお助け願います。。
513 名前:nobodyさん mailto:sage [2008/05/19(月) 20:03:43 ID:???] ローカルで試そうとしてるやつが、 どうしようもない素人を名乗るなよ。 向上心ねぇのか
514 名前:nobodyさん mailto:sage [2008/05/19(月) 20:16:06 ID:???] >>512 www.bribes.org/perl/ppmdir.html ここへいってら。 それができたら、こっちも回っておくように。 theoryx5.uwinnipeg.ca/ppms/
515 名前:nobodyさん [2008/05/19(月) 20:18:47 ID:82E4EJS9] 514さんありがとうございます。 読んでます。
516 名前:nobodyさん [2008/05/19(月) 21:08:55 ID:82E4EJS9] やっぱりエラーになります(涙
517 名前:nobodyさん mailto:sage [2008/05/19(月) 21:35:03 ID:???] リポジトリを増やしたのだからインストールできるはずだが。 掲示板なんだから、レスに主語と述語をはっきり書いてくれ。 とりあえず、頭にエラーが出たのか?
518 名前:nobodyさん mailto:sage [2008/05/19(月) 22:17:16 ID:???] 良く読んでないけど、 スタート→すべてのプログラム→ActivePerl→Perl Package Managerで 必要なものをクリック、クリック!した方が楽で簡単だよ。
519 名前:nobodyさん [2008/05/19(月) 23:01:51 ID:82E4EJS9] perl package managerの中に GDが見当たらないんです。 コマンドプロンプトで CPANから install GDってしても できないんです。 GD/image.pmが@INCに無いっていうエラーが出るんです。517さん。
520 名前:nobodyさん mailto:sage [2008/05/19(月) 23:13:22 ID:???] >>519 >>514 サイトをよく読んでppmにリポジトリを追加すると、GD 2.39がインストールできるようになる。 ちゃんとリポジトリを追加したか? それでも出ないというのなら、ppmに問題があることになる。
521 名前:nobodyさん mailto:sage [2008/05/19(月) 23:23:58 ID:???] ttp://mikiho.jp/memo/?log=20070111_141552 serach のとろを s GD としてくださいな これでも出来なければ諦めてください サポートしきれないです
522 名前:nobodyさん mailto:sage [2008/05/20(火) 01:25:53 ID:???] pub.ne.jp/wakapon/?entry_id=82091 Perl 5.8ならなんか面倒そうなんだけどこれかな?
523 名前:nobodyさん [2008/05/20(火) 03:52:12 ID:U/T3y6km] ここ見て、Win用のGD-2.39来てるのかと思い、threory58に行くも2.35しかないじゃないか!?ぷんぷん。 ふと、PPM-Repositoriesを0.14に上げて見るとbribesなるレポがあるので、これを見に行くと、 おおー、結構新しいの来てるじゃないか〜と、調子にのってperl areaのmoduleもUpしまくる。 しかし、Compress-ZlibをUpすると、Bandleされてたversionを上書きしてしまい、 それ以降ppmがtar.gzファイルを展開できなくなってしまった。(今まで見たことないエラーでPPMが落ちる) とゆうことで、今やっと再インストールと、(自分のよく使う)各種モジュールのインストール、最新版へのUpデートが終わった。 なんとか、Compress-Zlibも2.010に上げる事ができた。 ふう、疲れたぜ・・・・。
524 名前:nobodyさん mailto:sage [2008/05/20(火) 04:15:25 ID:???] そうなんだお疲れちゃん
525 名前:nobodyさん [2008/05/20(火) 14:16:09 ID:XrCi5l42] 519です。 いろいろサポートいただいて、できました。 ほんとに感謝してます。ありがとうです。
526 名前:nobodyさん mailto:sage [2008/05/21(水) 00:33:37 ID:???] phpのexplodeみたいに、 正規表現を使わずに高速に動作するsplitの代わりはないでしょうか?
527 名前:nobodyさん mailto:sage [2008/05/21(水) 01:39:24 ID:???] substrでループさせる自前の関数でも作れば?
528 名前:nobodyさん mailto:sage [2008/05/21(水) 01:41:57 ID:???] それって速いのかな。。 indexとsubstrを併用してちょっと試してみるか。
529 名前:nobodyさん [2008/05/21(水) 11:18:20 ID:crauFAgn] モジュールが一切入っていないレンタルサーバで、xmlを読み込もうとしています。 ググってみると、どこもXMLとLWPというモジュールを読み込む事が前提になっているようなのですが、 何も無い状態でXML
530 名前:529 mailto:sage [2008/05/21(水) 11:19:42 ID:???] すみません途中で送信してしまいました…orz モジュールが何も無い状態でXMLを読み込むために 参考になるようなサイトがありましたら、ご教示下さい。 宜しくお願いします。
531 名前:nobodyさん mailto:sage [2008/05/21(水) 12:00:10 ID:???] ソケット使ってゴリゴリ書くしか無いんじゃないかな
532 名前:nobodyさん mailto:sage [2008/05/21(水) 12:06:34 ID:???] モジュールが一切入っていないレンタルサーバでソケットが使えるようにインストールされてる とはとても思えないが・・
533 名前:nobodyさん mailto:sage [2008/05/21(水) 12:14:45 ID:???] xmlそのものについても調べてる状態なんですが、 どうも事実上無理っぽいということですかね…orz お騒がせしました、ありがとうございました。
534 名前:nobodyさん mailto:sage [2008/05/21(水) 13:46:16 ID:???] php が動くなら php 普通にネットワーク経由でファイル開けるので php も考慮してみれば?
535 名前:nobodyさん mailto:sage [2008/05/21(水) 23:33:50 ID:???] >>529 ,530 XMLを読み込むだけなら、XML::TreePPでXMLが読める。 別サイト上にあるXMLを読むならLWP等が必要。
536 名前:nobodyさん mailto:sage [2008/05/22(木) 08:42:14 ID:???] 質問です。Snアップローダー(sugachan.dip.jp/obsolete/snup/ )の ファイル個別HTMLを作成する部分で $buff = "<html><head><title>$filename</title></head><body>"; $buff .= qq|Download <a href="./$filename">$filename</a>|; $buff .= '</body></html>'; (ソースの760行目付近です) 特定の拡張子のみ別のHTMLコードを書き出したいのですが if文で$filename等試してみましたが上手く行きませんでした どなたか分かる方宜しくお願いします
537 名前:nobodyさん mailto:sage [2008/05/22(木) 10:13:46 ID:???] 改造スレいけ
538 名前:nobodyさん mailto:sage [2008/05/22(木) 12:40:41 ID:???] $buff .= qq|Download <a href="./$filename">$filename</a>|; こういう書き方もあるんだ。勉強になったw
539 名前:nobodyさん mailto:sage [2008/05/22(木) 13:18:50 ID:???] 毎行クォート変えるくらいならヒアドキュメント使えよ
540 名前:nobodyさん mailto:sage [2008/05/22(木) 13:25:55 ID:???] ヒアドキュメントもコーディングの桁揃えと、HTMLの桁揃えでタブを使うと、すっきりする方法 がなかなか見つからない。
541 名前:nobodyさん mailto:sage [2008/05/22(木) 13:40:38 ID:???] >if文で$filename等試してみましたが上手く行きませんでした どう試して、どういう結果になったのか書かないと。 基本だと思うが。
542 名前:nobodyさん mailto:sage [2008/05/22(木) 17:17:18 ID:???] >>540 普通に cookbook にある解ではダメなのか? ttp://www.unix.com.ua/orelly/perl/cookbook/ch01_12.htm
543 名前:nobodyさん [2008/05/24(土) 13:22:00 ID:CztaXqIN] セッション変数の受け渡しについての質問です。 print <<EOT <form action="localhost/cgi-bin/session.cgi " method="post"> <p> <label for="nm">お名前:</label> <input type="text" name="namae" id="nm"><br> <label for="ma">メール:</label> <input type="text" name="email" id="ma"> </p> <p> <input type="submit" value="送信"> <input type="reset" value="リセット"> </p> </form> EOT ; これらのフォームデータをセッション変数としてsession.cgiに受け渡したい のですが、どのようにすればよいでしょうか? CGI::sessionモジュールを利用して、session.cgi側で $hoge=$cgi->$session->param('namae'); などとすればセッション変数として受け取れる事は分かったのですが、 フォームからの受け渡し方が分かりません…。 よろしくお願いします。
544 名前:nobodyさん mailto:sage [2008/05/24(土) 13:38:27 ID:???] hiddenで投げれ
545 名前:nobodyさん mailto:sage [2008/05/24(土) 13:41:36 ID:???] >>543 どれがセッション変数なの?
546 名前:543 [2008/05/24(土) 13:47:45 ID:CztaXqIN] >>544 hiddenフィールドを利用すればセッション変数として受け渡されるのでしょうか? >>545 「お名前」や「メール」フォームに入力された文字列をセッション変数として session.cgiで受け取りたいと考えています。
547 名前:nobodyさん mailto:sage [2008/05/24(土) 13:47:48 ID:???] CGI.pmでデータを受け取るところから勉強を始めるべき。 セッションはその後。
548 名前:nobodyさん mailto:sage [2008/05/24(土) 13:49:52 ID:???] ・hidden ・GET ・cookie わざわざCGI::session使うくらいなんだから、普通はcookie使うんじゃね?
549 名前:543 [2008/05/24(土) 13:53:40 ID:CztaXqIN] >>547 すいません。>>543 の書き込み微妙に間違っています。 $hoge=$cgi->$session->param('namae'); のところ 通常データの受け取りは $hoge=$cgi->param('namae'); セッションでの受け取りは $hoge=$session->param('namae'); の間違いです。
550 名前:nobodyさん mailto:sage [2008/05/24(土) 14:04:47 ID:???] >>549 受け渡しの情報が知りたいって言ってるのに、 受け取りのソース書いてるから、それを指摘されてるんだよ。 >基本的にはセッション系モジュールの役割は、特定のキー=セッションIDに紐付けて、 >データを保存したり、読み込んだりといったことです。 >セッションIDの受渡しはCGI側でする必要があります。 ヒント:digit.que.ne.jp/work/wiki.cgi?Perl%e3%83%a1%e3%83%a2%2fCGI%3a%3aApplication%3a%3aPlugin%3a%3aSession%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab
551 名前:543 [2008/05/24(土) 14:05:03 ID:CztaXqIN] cookieにセッションIDやもっておきたいデータ(今回の場合、お名前やメール)を記述しておき、 サーバ側から要求があった時点でクライアントはそのcookieのデータを受け渡す といったイメージで良いのでしょうか。 うぅ、難しい。。。
552 名前:543 [2008/05/24(土) 14:13:48 ID:CztaXqIN] >>550 >受け渡しの情報が知りたいって言ってるのに、 >受け取りのソース書いてるから、それを指摘されてるんだよ。 データを受け渡す側のソースが>>543 で、受け取るソースがsession.cgiだと 認識してるのですが…。間違っているでしょうか。 もしかしたら私が勘違い?をしているのかも?
553 名前:nobodyさん mailto:sage [2008/05/24(土) 14:14:00 ID:???] >>551 正直、目的に対して技術が足りなすぎる。イヤミじゃなくてね。 トラブル起こす前に、オライリーのCGIプログラミング読破オススメ。
554 名前:nobodyさん mailto:sage [2008/05/24(土) 14:18:21 ID:???] >>552 >受け取るソースがsession.cgiだと認識してるのですが…。 少なくてもこのソース中でセッションIDはどこにも発行してないでしょ? 後は調べなさい。
555 名前:554 mailto:sage [2008/05/24(土) 14:19:15 ID:???] ごめんミスった。 × >受け取るソースがsession.cgiだと認識してるのですが… ○ >データを受け渡す側のソースが>>543 で
556 名前:543 [2008/05/24(土) 14:19:38 ID:CztaXqIN] すいません。もう少し勉強しなおしてきます。 みなさん、有難うございましたー・・・
557 名前:543 [2008/05/24(土) 14:23:19 ID:CztaXqIN] >>554 あ、ソースの一部分しか乗せてなかったためです! use CGI::Session qw/-ip_match/; my $session=CGI::Session->new(undef,undef,{Directory=>'./session'}); $session->expire('+1m'); #有効期限は1分間 $session->param('name','john'); #セッション経由で引き渡す項目と値 my $cgi=CGI->new; print $cgi->header(-charset=>'UTF-8', -cookie=>$cgi->cookie(-name=>'CGISESSID', -value=>$session->id, -expires => '+3M')), #cookieにセッションidを保管 $cgi->start_html(-lang=>'ja', -encoding=>'UTF-8', -title=>'CGI.pm使用/cookie'), $cgi->p('session id: '.$session->id.'<br/>', 'name: '.$session->param('name').'<br/>',
558 名前:543 [2008/05/24(土) 14:24:17 ID:CztaXqIN] 続き print <<EOT <form action="localhost/cgi-bin/session.cgi " method="post"> <p> <label for="nm">お名前:</label> <input type="text" name="namae" id="nm"><br> <label for="ma">メール:</label> <input type="text" name="email" id="ma"> </p> <p> <input type="submit" value="送信"> <input type="reset" value="リセット"> </p> </form> EOT ; $cgi->end_html; #end すいません…!
559 名前:nobodyさん mailto:sage [2008/05/24(土) 14:27:18 ID:???] めんどくさいし、合ってる保証ないけど、適当にフォローしてみる 追記 use CGI; 追記 my $cgi = new CGI; × my $session=CGI::Session->new(undef,undef,{Directory=>'./session'}); ○ my $session=CGI::Session->new(undef, $cgi, {Directory=>'./session'});
560 名前:nobodyさん mailto:sage [2008/05/25(日) 02:16:54 ID:???] htmlのフォームデータをセッション変数に格納して利用するには htmlのフォームデータをpost→受け取ったデータをセッション変数を格納するCGI →それらのセッション変数にアクセス(利用する)CGI の流れがいるのでは? 自信ないけど
561 名前:nobodyさん [2008/05/25(日) 19:58:56 ID:sAYmYKjS] perlのセッション管理はphpに比べるとかなりめんどい もちろん細かく制御するには向いてるんだが始めとっつきにくいかもなー
562 名前:nobodyさん mailto:sage [2008/05/26(月) 13:29:09 ID:???] >>561 >>543 の質問を分かりやすくPHPで説明すると、 $_REQUESTの内容を$_SESSIONで受け取るにはどうしたらいいんですか? ということ。
563 名前:nobodyさん [2008/05/26(月) 19:00:45 ID:BXwqNwjP] すみません。質問です。 Global symbol "%in" requires explicit package name at C:/ApacheGroup/〜〜.cgi line 375, <DATA> line 855. というソフトウェアエラーが出続けてるんですが。 どうすればいいでしょう。 どなたか教えてください〜。
564 名前:nobodyさん [2008/05/26(月) 19:09:34 ID:fmVA2Qe8] 先生方! 質問よろしいでしょうか! open(OUT,"+< log.txt"); eval{flock(OUT, 2);}; eval{truncate(OUT, 0);}; seek(OUT, 0, 0); print OUT @log; eval{flock(OUT, 8);}; close(OUT); 今はこのように通常のテキストでログの上書き保存をしているのですが、 私はgzipで圧縮して上書き保存をしたいのです! しかしどれだけGoogle先生に訊いてもgzipでの保存方法を教えてもらえません! あの先生はケチです! もう先生方だけが頼りなんです! 一体どうすればgzipでの保存が可能になるんでしょうか!
565 名前:nobodyさん mailto:sage [2008/05/26(月) 19:18:18 ID:???] >>563 xn--lckja1b6r.jp/%47%6C%6F%62%61%6C%20%73%79%6D%62%6F%6C%20%20%72%65%71%75%69%72%65%73%20%65%78%70%6C%69%63%69%74%20%70%61%63%6B%61%67%65%20%6E%61%6D%65 >>564 xn--lckja1b6r.jp/%70%65%72%6C%20%67%7A%69%70
566 名前:nobodyさん mailto:sage [2008/05/26(月) 19:32:47 ID:???] Archive perl でググればでてくるじゃないの
567 名前:nobodyさん mailto:sage [2008/05/26(月) 23:41:19 ID:???] >>563 英語が読めないなら駱駝本を買うべきだ。
568 名前:nobodyさん mailto:sage [2008/05/27(火) 11:06:43 ID:???] ラクダを漢字で書かれると困ります (><;)
569 名前:nobodyさん mailto:sage [2008/05/27(火) 19:27:42 ID:???] { $global_foo = $foo; $global_bar = $bar; my $foo; my $bar; $foo = $_[0]; $bar = $_[1]; $foo = $global_foo if $foo eq undef; $bar = $global_bar if $bar eq undef; } をコンパクトにまとめたいが、バグが混入しそうでいやん。
570 名前:nobodyさん mailto:sage [2008/05/27(火) 19:44:24 ID:???] { my $global_foo = $foo; my $global_bar = $bar; $foo = shift || $global_foo; $bar = shift || $global_bar; }
571 名前:nobodyさん mailto:sage [2008/05/27(火) 19:55:45 ID:???] >>569-570 $foo eq undef もたいがいだが shift || $global_foo だと $_[0] が '0' の時に挙動変わるな。
572 名前:nobodyさん mailto:sage [2008/05/27(火) 20:06:24 ID:???] { my $global_foo = $foo; my $global_bar = $bar; $foo = defined( $_[0] ) ? $_[0] : $global_foo; $bar = defined( $_[1] ) ? $_[1] : $global_bar; } こうか?
573 名前:nobodyさん mailto:sage [2008/05/27(火) 20:06:58 ID:???] あ、三項演算子逆だ。すまん。
574 名前:nobodyさん mailto:sage [2008/05/27(火) 20:33:00 ID:???] defined関数の存在が頭から抜けてたorz $foo = $global_foo if $foo eq undef; $bar = $global_foo if $bar eq undef; ではなく $foo = $global_foo unless defined $foo; $bar = $global_foo unless defined $bar; でお願いします。あと>>570-573 サンクス、参考になります。
575 名前:nobodyさん mailto:sage [2008/05/27(火) 20:38:51 ID:???] つーか、>>569 だとまともに動かんよ。 初期化するためにmy使っちゃってるように見えるけど、 この場合、ブロックスコープになるから、 ブロック内の$foo, $barと、グローバル変数$foo, $barは別物になる。
576 名前:nobodyさん mailto:sage [2008/05/27(火) 20:54:18 ID:???] myの仕様間違えて覚えてたか… $global_foo = $foo; $global_bar = $bar; { my $foo; my $bar; $foo = $_[0]; $bar = $_[1]; $foo = $global_foo unless defined $foo; $bar = $global_foo unless defined $bar; } 欲しい動作はこうかな…
577 名前:nobodyさん mailto:sage [2008/05/27(火) 20:56:48 ID:???] いやいやいやいやw 「perl スコープ 変数」でググっみ。
578 名前:nobodyさん mailto:sage [2008/05/27(火) 21:53:15 ID:???] 全然わかってないわかってないwww
579 名前:nobodyさん mailto:sage [2008/05/27(火) 22:34:53 ID:???] my $foo = 1; sub func { my $temp = $_[0]; return defined( $_[1] ) ? $_[1] : $temp; } ex : $foo = func( $foo, 10 ); # $foo = 10 $foo = func( $foo ); $foo = 1
580 名前:nobodyさん mailto:sage [2008/05/28(水) 00:31:36 ID:???] 早くdefined-or演算子実装されないかな…
581 名前:nobodyさん mailto:sage [2008/05/28(水) 01:24:48 ID:???] 今日が今月の何週目か求めるにはどうしたらよいでしょうか
582 名前:576 mailto:sage [2008/05/28(水) 01:29:54 ID:???] $global_foo = $foo = 1; $global_bar = $bar = 2; @_ = (3,4); #@_に値あり { my $foo; my $bar; $foo = $_[0]; $bar = $_[1]; $foo = $global_foo unless defined $foo; $bar = $global_bar unless defined $bar; print "point 1: foo=$foo bar=$bar\n"; } print "point 2: foo=$foo bar=$bar\n"; 出力結果 point 1: foo=3 bar=4 point 2: foo=1 bar=2
583 名前:576 mailto:sage [2008/05/28(水) 01:32:06 ID:???] $global_foo = $foo = 1; $global_bar = $bar = 2; @_ = (3,4); #@_に値あり { my $foo; my $bar; $foo = $_[0]; $bar = $_[1]; $foo = $global_foo unless defined $foo; $bar = $global_bar unless defined $bar; print "point 1: foo=$foo bar=$bar\n"; } print "point 2: foo=$foo bar=$bar\n"; 出力結果 point 1: foo=1 bar=2 point 2: foo=1 bar=2 ━━━━━━━━━━━━━━━━━━━━━━━ うん、欲しかった動作そのままだけど。 >>577-578 が理解できず悩み中
584 名前:nobodyさん mailto:sage [2008/05/28(水) 01:34:02 ID:???] ぎゃー、>>583 張り間違えた 【誤】@_ = (3,4); #@_に値あり 【正】@_ = (); #@_に値無し orz 120秒規制が若干きつい…
585 名前:nobodyさん mailto:sage [2008/05/28(水) 01:35:51 ID:???] Date::Calc
586 名前:nobodyさん mailto:sage [2008/05/28(水) 01:46:51 ID:???] >>576 目的が分からん。そもそも何がしたいの? 説明する気あるのか? my $foo = 1; my $bar = 2; print $foo = func( $foo ); print $bar = func( $bar ); print $foo = func( $foo, 3 ); print $bar = func( $bar, 4 ); exit; sub func { return defined( $_[1] ) ? $_[1] : $_[0]; }
587 名前:nobodyさん mailto:sage [2008/05/28(水) 01:47:41 ID:???] >>585 感動した ありがとう
588 名前:576 mailto:sage [2008/05/28(水) 01:58:37 ID:???] >>586 サブルーチン冒頭にて、引数リスト > デフォルト値(グローバル変数の値とか) の優先順でmy変数値を設定したいことはよくあるから、 perlなら… perlならきっとすごくスマートに書く方法があるに違いない… という夢を見たけど、幻だったみたいですね… 変数ひとつずつシコシコとunless definedを当てることにします。
589 名前:nobodyさん mailto:sage [2008/05/28(水) 02:00:25 ID:???] いや、日本語でおk お前の望むようなことは確実にできると思うんだけど、 なにぶん言いたいことがよく分からんw
590 名前:nobodyさん mailto:sage [2008/05/28(水) 02:16:48 ID:???] my $global_foo = my $foo = 1; my $global_bar = my $bar = 2; # @_ =( ); @_ =( 3, 4 ); { my $foo = defined( $_[0] ) ? $_[0] : $global_foo; my $bar = defined( $_[1] ) ? $_[1] : $global_bar; print "point 1: foo=$foo bar=$bar\n"; } print "point 2: foo=$foo bar=$bar\n"; 結局、最初に提案されてる回答をアレンジすれば、 >>582-584 をシンプルかつ可読性も保ったまま実現できるんだが。 これじゃいかんの?
591 名前:nobodyさん mailto:sage [2008/05/28(水) 02:25:18 ID:???] >>590 そのへんが限界みたいですね…ありがとうございます。 私の欲求そのものが十分特殊だったのかな… いま考えてる最善の形はサブルーチンを使うことです。 サブルーチンコールは負担かかりそうだからやりたくないんだけど… sub merge_argument_and_default{ my ($argument, @default) = @_; my @value; while(1){ my ($a, $v) = (shift @$argument, shift @default); my $c = ((defined $a) ? $a : $v); last unless defined $c; push @value, $c; } return @value; } sub foo{ my(@bar) = &merge_argument_and_default(\@_, @default_bar); } みなさんありがとうございました。
592 名前:nobodyさん mailto:sage [2008/05/28(水) 02:30:59 ID:???] 殺してぇ……。日記じゃねぇんだよ。
593 名前:nobodyさん mailto:sage [2008/05/28(水) 06:17:52 ID:???] >>580 もう実装されてるよ? search.cpan.org/dist/perl/pod/perl5100delta.pod#Defined-or_operator
594 名前:nobodyさん mailto:sage [2008/05/28(水) 06:40:31 ID:???] >>576 みたいに、自分のプライド保つために 当初の目的をすり替えて、自分は違うもの作ってました的な発言するやつは質問にくるなよ。 当初は「>>569 をコンパクトにしたい」って言ってただけなのに、 どんな解が提示されても、 どんどん違う方向に勝手に転換して善意のレスすら流し読み。 こういう奴は、治らないから本当に放置すべきだと思うよ。
595 名前:nobodyさん mailto:sage [2008/05/28(水) 07:18:42 ID:???] >>594 それは違うんだけど、あなたへの説得は無理かな。 ひどく機嫌を損ねてしまったのは悪いと思ってるが。 いただいたありがたいアドバイスから、例えば今回は、 「サブルーチン化でもしなければ相当コンパクトに収めるのは難しいらしい」 「そのサブルーチンはこういう形で書くのがよいのだろうか」 などと、自分の知識や興味対象は移り変わっていくことが多いです。 ただ、このスレッドにはしばらく書き込みを自粛します。さよなら。
596 名前:nobodyさん mailto:sage [2008/05/28(水) 10:11:34 ID:???] 典型的な"隠す人"だったか。
597 名前:590 mailto:sage [2008/05/28(水) 10:39:10 ID:???] うわ、ちょっと離れたスキにすげぇ慇懃無礼なこと書いてやがる。 目的も明確にせず、そのへんが限界てw そもそも次の疑問に移ったなら、その過程を説明するのが回答者への最低限の礼儀だろ。 社会出て苦労するよ。 ちなみに>>591 は、俺ならこう書く。 sub merge_argument_and_default { my ($argument, @default) = @_; my %count; $count{$_} = $default[$_] for( 0..$#default ); $count{$_} = ${ $argument }[$_] for( 0..$#{ $argument } ); return map { $count{$_} } sort keys %count; }
598 名前:nobodyさん mailto:sage [2008/05/28(水) 11:40:59 ID:???] >595みたいなやつっているよね 言葉遣いが丁寧なだけで、いっぱしの大人だと思ってる人。
599 名前:nobodyさん mailto:sage [2008/05/28(水) 12:04:01 ID:???] sub merge_argument_and_default { map{ defined $_[0][$_] ? $_[0][$_] : $_[$_ + 1] ;} 0 .. $#{$_[0]} ; } >>598 ガキなの見え見えなんだよねw ttp://www2.atpages.jp/mirror/2ch/perl/prog/read.php/1157874614/ の595を思い出した。
600 名前:nobodyさん mailto:sage [2008/05/28(水) 13:55:09 ID:???] >>593 そいえば5.10でてるんだっけ(汗 RHELとCentOSしか使ってないからすっかり忘れてました。
601 名前:nobodyさん mailto:sage [2008/05/28(水) 15:44:58 ID:???] 5.10って絶対分かりづらいよw 5.8より昔のリリースだとしか思えない。
602 名前:nobodyさん mailto:sage [2008/05/28(水) 15:51:58 ID:???] Ver 5.008008 Ver 5.010000 こう書けばよいのか?
603 名前:nobodyさん mailto:sage [2008/05/28(水) 16:09:29 ID:???] 5.1の方が新しいんですか? 知らなかったorz
604 名前:nobodyさん mailto:sage [2008/05/28(水) 16:21:25 ID:???] 5.10.0 > 5.9.5 > 5.8.8 >> 5.1.0 苦肉の策なんだろうな……。
605 名前:nobodyさん mailto:sage [2008/05/28(水) 17:55:49 ID:???] perl6ってどうなったん?
606 名前:nobodyさん mailto:sage [2008/05/28(水) 19:03:22 ID:???] >>605 parrotの新しいのが最近でた気が・・・
607 名前:nobodyさん mailto:sage [2008/05/28(水) 20:28:19 ID:???] あるIPアドレスが変数$ipに格納してあります。 この$ipが存在するか、あるテキストファイル(ip.txt)を読んで チェックしています。以下は例です。 $ipは"192.168.0.1" ip.txtに192.168.0.1が記述してあります。 この場合マッチするようプログラムしてあります。 ip.txtに 192.168.0.0/24 または 192.168.0.0/255.255.255.0 と記述してあるものと マッチさせたいのですが、 そういうサブルーチンは ありますでしょうか? 簡単にいうと、あるIPアドレスが サブネットマスクで指定してある 10進表記またはサイダー表記に マッチするか判定したいのです。 ip.txtは10進表記でもサイダー表記の どっちでも構いません。
608 名前:nobodyさん mailto:sage [2008/05/28(水) 20:34:04 ID:???] ttp://pc11.2ch.net/test/read.cgi/tech/1086143976/491-590 の543-544及び「IP pack unpack perl」でググれ。
609 名前:607 mailto:sage [2008/05/28(水) 20:59:40 ID:???] >>608 あり♪ 明日、見てみるよん
610 名前:597 mailto:sage [2008/05/28(水) 21:17:34 ID:???] >>599 終わった話題なんだけど、ちょっと気になった。 めんどくさかったら、スルーして。 提示してくれてるルーチンだと、 引数1 @array1 = (); 引数2 @array2 = ( 1,2 ); のとき、返り値が空になっちゃうよね。 配列1(引数1) > 配列2(引数2) という優先順位で、 配列3(返り値)を混ぜ合わせるというのが目的の処理だと思うんだけど、 配列1と配列2で要素数の大きい配列を、要素数だけループさせる処理にする場合、 キレイにまとめる方法ってないかなぁ? if( ( $#array1 <=> $#array2 ) == -1 ) { EXPR for( 0..$#array2 ); } else { EXPR for( 0..$#array1 ); } みたいな、冗長な方法しか俺には思い浮かばなかった。 だから、「配列の重複値をハッシュを利用してマージ」の応用みたいなことを>>597 でやってみたわけだ。 なんか美しい方法あればいいんだけどなぁ。
611 名前: ◆TWARamEjuA mailto:sage [2008/05/28(水) 21:20:10 ID:???] (´-`).。oO(Net::CIDRでよさそうな。。。)
612 名前:597 mailto:sage [2008/05/28(水) 21:26:18 ID:???] my @temp = ( $#array1 <=> $#array2 ) == -1 ) ? ( 0..$#array2 ) ; 0..$#array1; こんな前処理してから、>>599 のmap対象配列に、( 0..\$temp ) って感じかなぁ? エレガントさには欠けるけど、これが可読性保つギリギリかな?
613 名前:597 mailto:sage [2008/05/28(水) 21:28:46 ID:???] 動作確認してないからtypoしまくり。まぁ分かるよね?(苦笑
614 名前:607 mailto:sage [2008/05/28(水) 21:31:18 ID:???] >>611 私へのレスですね。 明日調べてみます
615 名前:599 mailto:sage [2008/05/28(水) 22:23:24 ID:???] >>610 ああ、 @array1 = ( undef, undef ) ; は考えてたけども、それは想定してなかったw >>612 の解で良いんじゃね? 助長を厭わないならば、 map{ 略 } 0 .. $#{$_[0]} , 0 .. $#_ - 1 ; っつー荒技もw 自分のスクリプトじゃ絶対やんないけどね。
616 名前:599 mailto:sage [2008/05/28(水) 22:27:21 ID:???] >>615 s/助長/冗長/
617 名前:nobodyさん mailto:sage [2008/05/29(木) 03:05:45 ID:???] mapがいまいち理解し切れなくて使ってないんだが覚えとくべき? 覚えると便利そうだけど。
618 名前:nobodyさん mailto:sage [2008/05/29(木) 03:45:40 ID:???] やってることは、forやforeachと変わらん。 違うっていえば、{}の中を、引数リストのそれぞれの要素で実行した結果をリストとして返すってとこか。 かなり便利な局面もある。覚えとくべきだとは思う。 @res = map{ $_ + 10 } (1,2,3,4,5) ; print join("\n",@res); ---結果--- 11 12 13 14 15
619 名前: ◆TWARamEjuA mailto:sage [2008/05/29(木) 07:02:31 ID:???] my $Now_Date = sprintf qq|%04d/%02d/%02d %02d:%02d|, map { $_->[0] += 1900; $_->[1]++; @$_; }[(localtime)[5,4,3,2,1]]; 2008/05/28 07:02 って出るかと思う。
620 名前:nobodyさん mailto:sage [2008/05/29(木) 08:23:18 ID:???] >>617 シュワルツ変換という定番sort手法には必須だよ。 ぐぐって、foreach 文で書いてみたらありがたみが分ると思う。 >>619 お前さんの例は頻繁にとんでもなく斜め上を行くなあw なんで一要素しかないと分りきってる無名配列を作って map の例にする? do ならいざしらず perl -le 'my $Now_Date = sprintf qq|%04d/%02d/%02d %02d:%02d|, do{ @_ = (localtime )[5,4,3,2,1] ; $_[0] += 1900 ; $_[1] ++ ; @_ } ; print $Now_Date ;' それ以前に普通は↑こんな面倒な事しないだろ? perl -MPOSIX=strftime -le '$str =strftime "%Y/%m/%d %H:%M", localtime; print $str, "\n"; '
621 名前:607 mailto:sage [2008/05/29(木) 17:51:57 ID:???] Net::CIDR::cidrlookupでうまくいきそうなのですが、 IPアドレスのチェックを行いたいと思ってます。 ググると、以下の様な正規表現がありますが、 \d(バックスペース)の意味が分かりません。 どういう意味なんでしょうか? \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
622 名前:nobodyさん mailto:sage [2008/05/29(木) 17:53:57 ID:???] 0-9
623 名前:607 mailto:sage [2008/05/29(木) 17:54:42 ID:???] すみません。 \dは数字でした。 申し訳ない
624 名前:607 mailto:sage [2008/05/29(木) 18:10:05 ID:???] またまたお願いします。 正規表現で/をマッチさせたいのですが、 以下であってますでしょうか? $hoge =~ /\//
625 名前:607 mailto:sage [2008/05/29(木) 18:11:58 ID:???] すんません \/で、いけるみたいです。 お騒がせしました。
626 名前:nobodyさん mailto:sage [2008/05/29(木) 18:15:31 ID:???] $hoge =~ m(/); すこしは綺麗?
627 名前:nobodyさん mailto:sage [2008/05/29(木) 18:19:11 ID:???] >>617 だけどレスありがとう。 シュワルツ変換とかまだいまいち理解できないけど良さそうだね。 sortは結構使うから思い処理の部分で使うのはいいかも。 でも問題は後で読み直して何してるか理解できなくなりそうな所だな。
628 名前: ◆TWARamEjuA mailto:sage [2008/05/29(木) 20:45:58 ID:???] >>620 つっこみおおきに♪ mapを覚えちゃってからどんどん斜め上に逝っちゃいました。 ひとまず車輪の再発明は大好き♪
629 名前:nobodyさん mailto:sage [2008/05/30(金) 02:09:30 ID:???] 曲芸はほどほどに
630 名前:nobodyさん mailto:sage [2008/05/30(金) 08:17:40 ID:???] 出来た物が車輪じゃない上に使えないのならただの無駄
631 名前:nobodyさん mailto:sage [2008/05/30(金) 10:14:07 ID:???] 車輪を作ろうとしたら鎖鎌が出来ちゃった感じだな
632 名前:nobodyさん mailto:sage [2008/05/30(金) 10:19:32 ID:???] まーmapは便利だってことだ
633 名前:nobodyさん mailto:sage [2008/05/30(金) 11:57:18 ID:???] XML::DOMを使ってXHTMLに広告を挿入するCGIを書いたのですが、use encoding "utf8"; を書くとローカルで文字化けしてしまいます。これをコメントアウトすると XREA.COMのサーバ上でScript Errorが発生してしまいます(しかもエラーログが見られない)。 ローカルでもXREA.COM上でも動くようにしたいのですがどうすればいいでしょうか。 コードはこんな感じです。 #!/usr/bin/perl use strict; use XML::DOM; use encoding "utf8"; my $xhtml_file = $ENV{'PATH_TRANSLATED'}; my $parser = new XML::DOM::Parser; my $doc; eval { $doc = $parser->parsefile($xhtml_file) }; if($@) { print "Content-Type: text/plain;charset=utf-8\n\n"; print "parsing error occured: $@"; exit; } # 広告挿入処理 print "Content-type: application/xhtml+xml;charset=utf-8\n\n"; print $doc->toString; $doc->dispose; ローカルの環境はUbuntu 8.04 + Perl 5.8.8 + Apache 2.2.8、 XREA.COMはよくわかりません。
634 名前:nobodyさん mailto:sage [2008/05/30(金) 12:22:33 ID:???] >>632 だれも「mapが不便」なんて言ってないがな 明らかにバッドノウハウなコードを曝してる奴をくさしてるだけで
635 名前:nobodyさん mailto:sage [2008/05/30(金) 12:23:13 ID:???] すみません。自己解決しました。use encoding "utf8";をコメントアウトして utf8::is_utf8($doc->toString) ? print encode('utf-8', $doc->toString) : print $doc->toString; とすればいいみたいです。utf8フラグというのが関係しているみたいなので、 調べてみます。おさわがせしました。
636 名前:nobodyさん mailto:sage [2008/05/30(金) 12:40:26 ID:???] >>635 これはマジメに調べまくった方がいい。 慣れるまでPerl5.8以降でハマる最大の原因。
637 名前:nobodyさん mailto:sage [2008/05/30(金) 12:50:11 ID:???] BOM付けてたりして・・・
638 名前:nobodyさん mailto:sage [2008/06/01(日) 07:19:24 ID:???] BOMBなら付いてますw
639 名前:nobodyさん mailto:sage [2008/06/02(月) 12:34:35 ID:???] Wed, 12 Mar 2008 21:20:11 GMT Last-Modified↑これをtimeの値に変換する方法を教えてください。 3600秒以内とかの判定に使いたいので。
640 名前:nobodyさん mailto:sage [2008/06/02(月) 12:49:16 ID:???] >>639 timelocal
641 名前:nobodyさん mailto:sage [2008/06/02(月) 12:57:39 ID:???] >>640 ありがとうございました!
642 名前:nobodyさん mailto:sage [2008/06/02(月) 13:51:21 ID:???] こんな感じで出来たのですが凄く格好悪いです。 $mon = 1 if $mon eq 'Jan';とか。 スマートな例があったら参考の為に見せてください。 sub last_modified { my $time = shift; my($day, $mon, $year, $hour, $min, $sec); if ($time =~ /\w+, (\d+) (\w+) (\d+) (\d+):(\d+):(\d+) GMT/) { ($day, $mon, $year, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6); $mon = 1 if $mon eq 'Jan'; $mon = 2 if $mon eq 'Feb'; $mon = 3 if $mon eq 'Mar'; $mon = 4 if $mon eq 'Apr'; $mon = 5 if $mon eq 'May'; $mon = 6 if $mon eq 'Jun'; $mon = 7 if $mon eq 'Jul'; $mon = 8 if $mon eq 'Aug'; $mon = 9 if $mon eq 'Sep'; $mon = 10 if $mon eq 'Oct'; $mon = 11 if $mon eq 'Nov'; $mon = 12 if $mon eq 'Dec'; } else { die "Error: $time\n"; } $time = timelocal($sec,$min,$hour,$day,$mon-1,$year); return $time; }
643 名前:nobodyさん mailto:sage [2008/06/02(月) 14:47:28 ID:???] >>642 %mons = ( Jan => 1, Feb => 2, Mar => 3, Apr = 4, # ……以下省略 ); $mon = $mons{$mon}; とかどうよ?
644 名前:nobodyさん mailto:sage [2008/06/02(月) 15:22:18 ID:???] >>643 ありがとうございます。 連想配列は普段全く使わないので、この機会に試してみます!
645 名前:nobodyさん mailto:sage [2008/06/02(月) 15:44:50 ID:???] >>643 は、どうせ後で1引くのに、どうしてわざわざ1足すのさ?w
646 名前:nobodyさん mailto:sage [2008/06/02(月) 16:15:30 ID:???] >>645 ほんとだ>< お前頭いいな すみません><
647 名前:nobodyさん [2008/06/02(月) 17:46:33 ID:VCfcjQkN] CPANを使わずにモジュールを使いたいのですが、なかなかうまくいきません。 HTML::Template を使いたいのですが、 ローカルにインストールしている、 C:\Perl\cpan\build\HTML-Template-2.9\Template.pm というファイルを、以下のcgiと同ディレクトリにコピーしました。 #!/usr/local/bin/perl use strict; use lib qw(.); use HTML::Template; print "Content-type:text/html\n\n", "test"; ですが、うまくいかないようです。 use lib qw(.); の部分を、 unshift @INC, '.'; などとしても不可能でした。 ググっても上記の方法ぐらいしか出てこないんですが、何がいけないか教えていただけますでしょうか。 Perl のバージョンは 5.00503 です。
648 名前:nobodyさん mailto:sage [2008/06/02(月) 17:51:49 ID:???] Template.pmをHTMLというディレクトリを作ってそこにいれる
649 名前:nobodyさん [2008/06/02(月) 18:08:23 ID:VCfcjQkN] >>648 ありがとうございます。 助言どおりHTML ディレクトリにTemplate.pmを入れて、エラーが出たので、 Digest::MD5がどうだとかエラーが出ました。 同じ要領で、Digest ディレクトリを作り、MD5.pmを入れると、 次はXSLoader.pmが必要らしく、それもcgiと同ディレクトリに入れました。 次はDynaLoader.pmがどうとかエラーが出たので、それも同じディレクトリに入れたのですが、 今度はエラーが消えませんでした。。 最終的にCGI::Carpがはいたエラーは以下です。 [Mon Jun 2 18:01:45 2008] Template.pm: [Mon Jun 2 18:01:45 2008] Template.pm: [Mon Jun 2 18:01:45 2008] MD5.pm: [Mon Jun 2 18:01:45 2008] MD5.pm: [Mon Jun 2 18:01:45 2008] DynaLoader.pm: Can't locate loadable object for module Digest::MD5 in @INC (@INC contains: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 .) at HTML/Template.pm line 915 [Mon Jun 2 18:01:45 2008] Template.pm: [Mon Jun 2 18:01:45 2008] Template.pm: BEGIN failed--compilation aborted at HTML/Template.pm line 915. BEGIN failed--compilation aborted at test.cgi line 6.
650 名前:nobodyさん mailto:sage [2008/06/02(月) 18:17:18 ID:???] CPAN にモジュールの関連性とか書いてなかったっけ?
651 名前:nobodyさん mailto:sage [2008/06/02(月) 18:18:22 ID:???] 関連性とかじゃなくて依存のこと
652 名前:nobodyさん [2008/06/02(月) 18:25:00 ID:VCfcjQkN] q.hatena.ne.jp/mobile/1195733487 ↑必要としているモジュールは違うものの、 この人と同じ状況なのかな、と思うんですがどう思いますか? 同じ状況だとすると、不可能ですよね FTPであげることしかできませんので。。。
653 名前:nobodyさん mailto:sage [2008/06/02(月) 18:41:40 ID:???] 呼び出されてるDLLがWin用のコンパイル済みDynaLoader.pmを、Linuxにそのままコピーしたんでしょ? たぶん。 Linuxでコンパイルし直さないとムリ。よってムリ。
654 名前:nobodyさん [2008/06/02(月) 18:45:29 ID:VCfcjQkN] あぁ・・・やはり無理ですか。 5.00503で使えるHTML::Templateの代わりのようなものがほしいんですが、 どこを探せばいいでしょうか。 何度も申し訳ありません。
655 名前:nobodyさん [2008/06/02(月) 18:52:18 ID:VCfcjQkN] HTML::Templateの昔のバージョンとかなら5.00503でも動きますかね?
656 名前:nobodyさん mailto:sage [2008/06/02(月) 18:56:19 ID:???] その知識だと、HTML::Templateなんて必要ないじゃん!的な使い方しかしてしないと予想されるので、 自前でテンプレート化した方が早い。 スキン対応と銘打ってる配布CGIのソース読んだ方が早い気がする。
657 名前:nobodyさん mailto:sage [2008/06/02(月) 18:59:25 ID:???] HTML をテンプレート使って出力するようにすると病み付きになる
658 名前:nobodyさん mailto:sage [2008/06/02(月) 19:03:56 ID:???] 5.005のこと詳しくしらないけど、DynaLorderとかって、標準で入ってないの? ってか、>>649 の内容を見るに、DynaLorderでわなくて、Digest::MD5(.so)が無いんでないの?(これも標準でない?) まあなければ、Digest::MD5はXSモジュール含んでるから、 そのサーバー上でコンパイルし直さないと実行できないのは、>>653 と同じ意見だけど。
659 名前:nobodyさん [2008/06/02(月) 19:07:00 ID:VCfcjQkN] PerlってHTMLと親和性ないですよね〜。 テンプレート使えないとなると、めんどくさくなるけど、まぁがんばります。 ありがとうございました。
660 名前:nobodyさん mailto:sage [2008/06/02(月) 19:49:04 ID:???] 自分の未熟さを言語のせいにするなよw HTMLと最も親和性のある言語として、Perl/CGIが一世風靡しただろ。
661 名前:nobodyさん mailto:sage [2008/06/02(月) 19:51:49 ID:???] >>657 kwsk
662 名前:nobodyさん mailto:sage [2008/06/02(月) 19:59:46 ID:???] >>661 ちょっとかじった程度の人でもデザイナーとプログラマを切り分けられる利点がある
663 名前:nobodyさん [2008/06/03(火) 00:57:17 ID:etSjPPZK] PostやGetで送られてきたURIエンコードをデコードしてハッシュに確保するような プログラムを作ったのですが HTMLのformでenctypeをmultipart/form-dataにすると 送られてくるデータの形式が変わってしまって うまくハッシュに確保することができなくなっちゃいました。 送られてきたデータが multipart/form-dataなのか application/x-www-form-urlencodedなのか 調べる方法ってありますか? ついでに、multipart/form-dataで送られてきたデータの扱い方を まとめてあるサイトとかありましたら教えてほしいです。
664 名前:nobodyさん mailto:sage [2008/06/03(火) 01:01:53 ID:???] multipart/form-data って文字があるのか application/x-www-form-urlencoded って文字があるのかで簡単に判別着く multipart/form-data の処理は CGI.pm 使ってね♪
665 名前:nobodyさん mailto:sage [2008/06/03(火) 01:12:56 ID:???] >>663 CGI.pm ならどちらの形式でも意識せず受け取れる。 perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod 自前実装したいのなら www.studyinghttp.net/cgi-bin/rfc.cgi?3875#Sec8.2 www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.4.1 www.studyinghttp.net/cgi-bin/rfc.cgi?2388
666 名前:nobodyさん [2008/06/03(火) 01:24:31 ID:etSjPPZK] >>665 ありがとう!
667 名前:nobodyさん mailto:sage [2008/06/03(火) 01:58:53 ID:???] >>659 テンプレートエンジン、自分で作るという手もある。 そんなに難しくないよ。 Compositeパターンでも使えば。
668 名前:nobodyさん mailto:sage [2008/06/03(火) 09:41:38 ID:???] >>659 HTML をふつうに書く HTML なかに <%BODY%> とか、挿入場所を示す識別子をいくつか用意して書き込む プログラムからテンプレート HTML を読み込む 正規表現で置換 たったこれだけです。
669 名前:nobodyさん mailto:sage [2008/06/03(火) 11:07:04 ID:???] Template::Toolkitならともかく HTML::Templateは単純な処理だしね さくっと使いたい時には便利、無けりゃ無いでどうにでもなる
670 名前:nobodyさん [2008/06/03(火) 12:56:41 ID:K4KbdDUT] Perlでindex.cgiを作って そのCGIですべてを管理するような仕組みを作った場合 やっぱindex.cgiにアクセスが集中してよくなかったりするんですか?
671 名前:nobodyさん mailto:sage [2008/06/03(火) 13:31:41 ID:???] index.cgi で処理させる内容を挙げてくれないとまったくわからない 自分は普通のエディタ (関数へのジャンプとか無くて色分けだけ) なので まったく違う処理はファイル分けてる
672 名前:nobodyさん mailto:sage [2008/06/03(火) 17:01:51 ID:???] 多分聞きたい事って、hoge1.cgiとhoge2.cgi…hoge100.cgiとかあったら それぞれ頭で同じ事やってるから、all.cgi(index.cgi?)に全て まとめられないか?って事じゃないのかな? my $cgi = CGI->new(); my $config = init(); if( $cgi->param('mode')eq'hoge1' ) { require 'hoge1.pl'; hoge1::main($config); } elsif( $cgi->param('mode')eq'hoge2' ) { require 'hoge2.pl'; hoge2::main($config); …って、感じで。漏れも昔、初心者だった時に同じ事を思った。 答えは、当然all.cgi(index.cgi?)の呼び出しのオーバーヘッドは 全CGIの呼び出し回数倍増えるよ。 そういう事じゃなくて??
673 名前:nobodyさん mailto:sage [2008/06/03(火) 17:44:51 ID:???] >>670 俺それやってる wikiみたいに書けるテキストファイルを自動で携帯/PCに最適化してValid XHTML出力する、みたいな。
674 名前:nobodyさん mailto:sage [2008/06/03(火) 17:56:29 ID:???] bloxsomだっけ?
675 名前:nobodyさん mailto:sage [2008/06/03(火) 19:41:27 ID:???] perl関連のプロジェクトは企画倒れが本当に多いね。 企画倒れというより、制作者が途中で飽きて、ブームになっても、そのまま放置……みたいな。 かのCPANだって、一部のモジュール以外は、姥捨山みたいになってる。 古いモジュールに、パッチ送ってもメール不達とか多すぎるんだよ!
676 名前:nobodyさん mailto:sage [2008/06/03(火) 20:52:43 ID:???] tp://www.drk7.jp/weather/ ここの 東京の xml から加工を行っています。 最終的には明日の天気を出力したいのですが、以下のコードを書いたところ 気温や降水確率が出力されなくて悩んでいます。 ================================================ use XML::TreePP; use strict; my $tpp = XML::TreePP->new(); my $tree = $tpp->parsefile( '13.xml' ); print $tree->{weatherforecast}->{pref}->{area}->[1]->{info}->[1]->{weather} , "\n"; print $tree->{weatherforecast}->{pref}->{area}->[1]->{info}->[1]->{temperature}->{range}->[1]; ================================================ {range}->[1] で %hash と言われてしまうのはどうしてでしょうか。 その後に [1]->{-centigrade} をするとこの場合は min が出てくるのは判っています。
677 名前:nobodyさん mailto:sage [2008/06/03(火) 21:13:48 ID:???] [1]->'#text' ダンプしろよ
678 名前:nobodyさん mailto:sage [2008/06/03(火) 21:21:10 ID:???] print $tree->{weatherforecast}{pref}{area}[1]{info}[1]{temperature}{range}[1]{#text} manual嫁。 あと、XMLの中にareaやinfoやrangeの要素が1つしか無い場合に配列要素に ならないのがTreePPの仕様なので、例えばinfoが1要素しか無い場合は print $tree->{weatherforecast}{pref}{area}[1]{info}{temperature}{range}[1]{#text} とアクセスしなくてはいけない。オプションで回避できるけど。
679 名前:670 [2008/06/03(火) 22:25:48 ID:etSjPPZK] 言葉が足りんでした。スミマセン。 >>673 ちょっと俺の勉強不足で言ってることがよくわからないけれど 例えばindex.cgi?page=homeだとhome.htmlをcgiプログラムが引っ張ってきて表示する みたいな仕組みを作った場合、 どのユーザーがどのページを見てもindex.cgiに必ずアクセスするわけじゃない? てことはページが1000ページとかできたとして いろんな人がいろんなページを見出したらindex.cgiのアクセスが集中して なんかまずいことになったりしないのかなって思ったの。 教えてLarry!!
680 名前:nobodyさん mailto:sage [2008/06/03(火) 22:40:04 ID:???] つか、ほとんどのWEBアプリケーションは、特定ファイルに負荷集中するがな。
681 名前:670 [2008/06/04(水) 00:28:11 ID:KcodebuX] >>680 あ、じゃあ余計な心配しなくて大丈夫かぁ
682 名前:nobodyさん mailto:sage [2008/06/04(水) 01:09:20 ID:???] つ mod_perl
683 名前:nobodyさん mailto:sage [2008/06/04(水) 05:38:01 ID:???] A:opendir でファイル一覧を取得する B:予めファイル一覧をそれ用のメモファイルに書き出しておいてそれを読みこんで取得 AとBではどちらが負荷が少ないですか?
684 名前:nobodyさん mailto:sage [2008/06/04(水) 06:05:53 ID:???] 自分で調べられる手間を人に仮託するな。
685 名前:nobodyさん mailto:sage [2008/06/04(水) 08:14:25 ID:???] >>670 >>672 に答えが書いてあるのだが、何故それを無視する?
686 名前:nobodyさん mailto:sage [2008/06/04(水) 10:13:14 ID:???] どなたか教えてください。 掲示板のタイトル一覧取得を現在作っています。 それでタイトルがもし長かった場合、最初の9byteだけを表示するようにしたいのですが・・・ if (length($title) > 9) { $get = substr($title[3],0,9); } 以上のようにしてしまうと、9byte目に全角文字が来た場合文字化けしてしまいます。 例えば、 $title = "testtesttest"; この場合は $get = testtestt $title = "テストテスト"; これだと $get = テストテ爛 こういった文字化けを回避するような、いい方法は無いでしょうか?
687 名前:nobodyさん mailto:sage [2008/06/04(水) 10:15:53 ID:???] jfold
688 名前:686 mailto:sage [2008/06/04(水) 10:27:56 ID:???] 2分での光速のお返事ありがとうございます。 調べてみたところ、Jcode.pmのモジュールみたいですね。 今までずっとjcode.plばっかだったので知らなかった… さっそく試してみます。 どうもありがとうございました。
689 名前:670 [2008/06/04(水) 13:24:15 ID:44uKn/lk] >>685 スミマセン基地外でした。
690 名前:nobodyさん [2008/06/05(木) 00:08:18 ID:S7Nj2GEO] ところでさ…何故elsifなんだと思う? どうせならifにあわせてelとefとか2文字にしてほしかったん
691 名前:nobodyさん mailto:sage [2008/06/05(木) 00:28:25 ID:???] ごめんなさいごめんなさい
692 名前:nobodyさん mailto:sage [2008/06/05(木) 22:21:15 ID:???] Cか何かでやってる人いたな。
693 名前:nobodyさん mailto:sage [2008/06/05(木) 23:21:13 ID:???] 最近5.10を使うようにしてんだけどgiven-whenが馴染めない switch-caseでいいと思うのになんでgiven-whenにしたのかな?Switch.pmがあるから?
694 名前:nobodyさん mailto:sage [2008/06/06(金) 01:28:23 ID:???] >>693 pc11.2ch.net/test/read.cgi/php/1008355270/85 Perl の自然言語的体裁には switch-case より given-when の方が よりしっくりくるかもね。
695 名前:nobodyさん [2008/06/07(土) 20:54:21 ID:8brPzE2o] www.vid-dl.net/ このサイトに v.youku.com/v_show/id_ch00XMjc3MDQ1MzI=.html を入力するとリンク先が4つほどでます。 これを自分でもPerlCGIで再現したいんですが、4つのリンク先をどうやって出してるのかわかりません。 HTMLのソースを見る限り4つないんです。 ないものを何かを元にして解析?してるようです。 4つの違いは以下です f.youku.com/player/getFlvPath/sid/12008536434684686883/st/flv/fileid/ までは一緒以下が 0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9 0200640401482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9 0200640402482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9 0200640403482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9 です。 <a charset="400-002-2-4" href="javascript:sendVideoLink('XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9');">??</a> これが大本でこれを解析してるんでしょうか。 こういうのはどうやって解析すればいいのでしょうか? よろしくお願いします。
696 名前:nobodyさん mailto:sage [2008/06/07(土) 21:00:16 ID:???] 一部の0に1足してるだけじゃないの?
697 名前:nobodyさん [2008/06/07(土) 21:25:47 ID:8brPzE2o] >>696 ですが4つとは限らないんです。 このビデオは4つですが、者によっては8つとかになります。 それをどうやって特定してるのかがわかりません。
698 名前:nobodyさん mailto:sage [2008/06/07(土) 21:33:39 ID:???] >>697 youkufireかなんかAPI使ってるんだろ。 Perlとは関係ないな。
699 名前:nobodyさん [2008/06/07(土) 21:43:36 ID:8brPzE2o] >>698 ??? それではyoukufireではどうやってやってるんでしょうか? こういうのってどういうスレに行くと知ってる人がおられるのでしょうか? フラッシュ関連なのでしょうか? 自分はPerlをかじる程度しか知らないのでついここに来てしまったのですが。 アドバイスお願いします
700 名前:nobodyさん mailto:sage [2008/06/07(土) 22:34:21 ID:???] HTTPに関して勉強して下さい。 全くのスレ違いです。
701 名前:nobodyさん [2008/06/07(土) 22:55:37 ID:8brPzE2o] http??? 他で質問してみます。ありがとうございました。
702 名前:nobodyさん mailto:sage [2008/06/07(土) 23:03:35 ID:???] いや、どこで質問しても無駄だと思うよ。 結局、HTTPレスポンスを解析する必要があるから。 そして、HTTPレスポンスの意味を把握するには、 sidなどユニークなIDのパターン解析と youkuで使われてるファイル取得swfの内部解析も必要。 この意味が分からない次元じゃ、到底ムリ。
703 名前:nobodyさん [2008/06/07(土) 23:36:39 ID:8brPzE2o] なるほど。 www.kasai.fm/perlHTTP/ www.kasai.fm/perlHTTP/decode.html からとりあえずそのhttpレスポンスとやらを実際に見てみようと思いましたが。 どうもCan't locate BASE64 in @INC エラーがでまして。 このモジュールをactiveperl5.8.1のppm(リポジトリは初期状態のまま1つです)でいれようとしましたが ない模様です。 MINE::Base64って自分でコンパイル?でしたっけができないとダメなものなのでしょうか。
704 名前:nobodyさん [2008/06/07(土) 23:53:12 ID:8brPzE2o] すいません getHTTPの #use MIME::Base64; require('BASE64'); を use MIME::Base64; #require('BASE64'); にしたらエラーが出ませんでした。動いてるかはわかりませんが。
705 名前:nobodyさん mailto:sage [2008/06/08(日) 00:05:22 ID:???] MIME::Base64は標準モジュールだ。 というか、質問内容が初心者未満の単なる教えて君だぞ。 最低限、ドキュメント読むかググってから書き込め。
706 名前:nobodyさん [2008/06/08(日) 00:14:24 ID:Mcg1bojL] そうなんですか。とりあえずperlでwebページを読み込む実験は成功しました。 そこからフラッシュのURLを抜き出すところまではできそうです。 >sidなどユニークなIDのパターン解析と >youkuで使われてるファイル取得swfの内部解析も必要。 これを検索とか意味を探してきます。
707 名前:nobodyさん mailto:sage [2008/06/08(日) 14:55:02 ID:???] オブジェクトにメソッドを足すにはどうしたらいいでしょうか? package foo; *{foo::hoge::bar} = sub {1}; $hoge = foo->hoge; $hoge->bar(); Can't locate object method "hoge" via package "foo" アレ?
708 名前:nobodyさん mailto:sage [2008/06/08(日) 16:56:29 ID:???] >>707 基本から一通り勉強し直したらいいんじゃないかな。 www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html www.kt.rim.or.jp/~kbk/perl5.005/perlobj.html
709 名前:nobodyさん mailto:sage [2008/06/08(日) 18:03:33 ID:???] >>708 サンクス 最後のページ Summary なすべきこと。今、あなたは部屋を出てオブジェクト指向方法論に関する書籍を購入して、そして六ヶ月かそこらの間悩む必要があるでしょう。 ワロタ
710 名前:nobodyさん [2008/06/08(日) 18:41:29 ID:NYonUevm] うーん継承させても hoge { $this = shift; return $this; } bar{1} hoge->bar()ってやったら呼べるんだけどbarはhogeと同じ空間にあるのが変というか つまり単純化するとこんな感じ。 *{foo::hoge::bar} = sub {1}; print foo->hoge->bar(); エラー print foo::hoge::bar->(); 動くが気もい *{foo::hoge::bar} = sub {1}; #もっとキモイ $top = foo::hoge; print eval ($top ."::bar"); 勉強してきます しかしあんま資料ないっぽい
711 名前:nobodyさん mailto:sage [2008/06/08(日) 18:52:18 ID:???] OOPじゃなくて、perlの基本からやり直しては。 *{foo::hoge::bar} じゃなくて *{foo::bar} hogeなんていうpackage作ってないし。
712 名前:nobodyさん mailto:sage [2008/06/08(日) 19:09:16 ID:???] > hogeなんていうpackage作ってないし。 ! それだ! ありがとうやっとわかったよ。 てっきり package a::b::c; ってやると a a::b a::b::c ってのが自動的に生成されると思ってた。
713 名前:nobodyさん mailto:sage [2008/06/08(日) 20:02:49 ID:???] パッケージじゃなくてオブジェクトに生やしたいの? 見かけ上はできるけだろうけどPerlのオブジェクトは名前空間に変数結び付けてるだけだからなあ と思ったけどもう一度勉強した方が良さげだね
714 名前:nobodyさん mailto:sage [2008/06/08(日) 20:20:35 ID:???] Perl DBI MySQL CGIであるデータをホームページ上に表示することをやっています。 5000件ほどのデータをfetchrow_arrayで1行ずつフェッチしていますが どうもフェッチ処理に時間がかかっているようです。 実際に必要なのは20件ほどで、他はページ送りで表示可能。 検索エンジンの検索結果ページなんかをイメージしていただければ。 そこで、不要なフェッチを無くすために、 複数行を飛ばしてフェッチすることってできますか? もし他に改善策があれば教えてください。 一応、SELECTの段階で20件だけを取り出す方法を思いつきました。
715 名前:nobodyさん mailto:sage [2008/06/08(日) 20:39:35 ID:???] >> 714 @array の展開はコスト食うのでやめたほうがいいかもね。 @arrayの高速操作が必要ならスライス操作とか調べてみると吉 SELECTで絞れるなら断然そっちのほうが早いと思うよ。
716 名前:nobodyさん mailto:sage [2008/06/08(日) 22:10:54 ID:???] >>715 ありがとうございます。 スライス操作調べてみました。SELECTでLIMITつければいいんですかね? これで必要な分だけのフェッチですみましたが、どうも時間がかかるようです。 ちょっと複雑なSQL文なんでそっちのほうがボトルネックのようですorz SQL文のほうを考え直そうと思います。
717 名前:nobodyさん mailto:sage [2008/06/09(月) 12:35:45 ID:???] SELECT SQL_CALC_FOUND_ROWS * FROM $table LIMIT ( $page*20+1 ), 20; SELECT FOUND_ROWS(); >>715 >>716 はSQLの話じゃなくて、 大規模の配列使うなって話で、 my @temp = splice( @array, 0, 20 ); 的なことでしょ。 SQL文はスレ違い。
718 名前:nobodyさん mailto:sage [2008/06/09(月) 15:41:11 ID:???] もうメンドクセーから、bind_columns()とfetch()にすれば? 生えーぞ。
719 名前:nobodyさん mailto:sage [2008/06/09(月) 16:00:10 ID:???] 生いいよね
720 名前:nobodyさん [2008/06/09(月) 19:29:41 ID:BYZvhcIN] LIMITしらねーとか そんなレベルなら 其の都度ひっかかって質問するより勉強したほうがはやいよ リファレンスページみっけてプリントアウトしとけ
721 名前:nobodyさん mailto:sage [2008/06/09(月) 23:24:50 ID:???] 122 11 11000 ↑これをソートすると 11 11000 122 ↑こんな風になってしまいます。 11 122 11000 ↑こんな感じで大きい順にソートする方法を教えてください。
722 名前:nobodyさん mailto:sage [2008/06/09(月) 23:26:19 ID:???] sort { $a <=> $b } ( 122, 11, 11000 ) ;
723 名前:nobodyさん mailto:sage [2008/06/09(月) 23:36:47 ID:???] >>722 さん、ありがとうございました。
724 名前:nobodyさん mailto:sage [2008/06/13(金) 02:38:01 ID:???] ファイルのアップロードについて質問です *** form.html *** <input type="file" name="gazou1"> <input type=その他 ...> *** form.cgi *** use CGI; $q = new CGI; @names = $q->param(); foreach $name (@names) { $value = $q->param($name); if (input type が file だったら ) { ファイル受信処理 } なんらかの配列に格納 } と、したいのですが、 inputのtypeは調べられないのでしょうか? inputのnameで判断するしかないのでしょうか?
725 名前:nobodyさん mailto:sage [2008/06/13(金) 09:17:11 ID:???] >>724 ブラウザから渡されるデータ自体に type 属性の値が含まれて いないのだから、CGI プログラム上から調べる事はできない。 ref $value でアタリを付ける事はできる。 perldoc.jp/docs/perl/5.10.0/perlfunc.pod#item_ref_EXPR_ref_reference perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod (「ファイル・アップロード・フィールドの作成」の項)
726 名前:nobodyさん mailto:sage [2008/06/13(金) 10:25:57 ID:???] @id には ( '101','106','112','130','150') などと入っており $unit->{101}->{point} = 2.5; $unit->{130}->{point} = 6.2; $unit->{150}->{point} = 3.2; と代入してあります このポイント(2.5、6.2等)を元にして@idをソートしたいのですが @id = sort { $unit->{$_}->point <=>$unit->{$_}->point } @id とまで考えて、$aや$bをどのように使ったら良いのか分らなくなりました よろしかったらどのように表記したら良いのか教えてください
727 名前:nobodyさん mailto:sage [2008/06/13(金) 10:51:23 ID:???] >>726 >>3
728 名前:726 mailto:sage [2008/06/13(金) 11:00:28 ID:???] ありがとうございます Perlメモはいつも参考にさせて頂いてまして ・複数の項目でソートする ・自分で決めた順番でソートする の応用でなんとかなるかと思ったのですが どうにも分らずこちらでお伺いしました次第です どの辺りを応用すればよろしいでしょうか?
729 名前:726 mailto:sage [2008/06/13(金) 11:18:24 ID:???] ・複数の項目でソートするを応用して(まんまかも) 先にmapでポイントの配列を作る事でなんとか出来ました @id = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [$_,$unit->{$_}->{point} ] } @id ありがとうございました そしてお騒がせ致しました
730 名前:nobodyさん mailto:sage [2008/06/13(金) 11:37:27 ID:???] @id = sort { $unit->{$a}->{point} <=> $unit->{$b}->{point} } @id
731 名前:724 mailto:sage [2008/06/13(金) 12:09:38 ID:???] >>725 やはりtypeは知りようがないのですね。 ご回答ありがとうございました。
732 名前:726 mailto:sage [2008/06/13(金) 12:41:47 ID:???] なるほど、$_ がキーになる場合はそこが$a,$bの対象になるんですね コードがすっきりしました >>730 さん、ありがとうございます
733 名前:nobodyさん mailto:sage [2008/06/13(金) 12:51:42 ID:???] >>732 sortでなんで$_がでてくるのかわからない。$aと$bしかないだろ。 grepやmapと混乱してないか?
734 名前:726 mailto:sage [2008/06/13(金) 13:06:56 ID:???] Perlメモのを応用しようとしていじくりまわして >>726 のソースに間違えて辿り付いたので勘違いしてました てっきり配列の要素を引っ張り出したらそれが$_になるのかと・・・ で、$a,$bはそれが直接比較の対象にならないといけないのかと勘違いしてました orz
735 名前:nobodyさん mailto:sage [2008/06/14(土) 03:33:00 ID:???] 俺も今多次元ハッシュ使ってるけどコツがわかると便利で気に入ってる。
736 名前:nobodyさん mailto:sage [2008/06/15(日) 00:12:38 ID:???] ちょっとした構造体風の物を作るのにいいよね リファレンスで受け渡しも簡単だし
737 名前:nobodyさん mailto:sage [2008/06/15(日) 01:14:21 ID:???] WinXPPro+Cygwin、iswebでperlを作成しています。 普段は問題なく動いているのですが、自宅で試したperlをiswebにアップロードする作業が面倒でたまりません。 そこで質問なのですが、 #!/usr/local/bin/perl とかの表記を書き換えずとも、上記二つの環境の両方で動くように出来ないでしょうか。 毎度毎度アップロードするときに、全cgiを書き換えているので、そこだけでも何とかしたいんです。 もしくは、専用のFTPソフトみたいなので、アップと同時に書き換えてくれるような奴があると良いなぁって思ってます。 どなたか、よろしくお願いいたします。
738 名前:nobodyさん mailto:sage [2008/06/15(日) 01:43:19 ID:???] それこそローカルと同期させる専用FTPクライアントをPerlで作れよw Net::FTP使えば、30分程度で作れるだろ。
739 名前:nobodyさん mailto:sage [2008/06/15(日) 01:43:42 ID:???] っ coLinux っ ActivePerl をC:\usr\local\以下にインストール っ 「メンドクセーっ! 頭 #!perl に統一してやんよ。」(Path通ってなかったら知らん)
740 名前:738 mailto:sage [2008/06/15(日) 01:45:20 ID:???] 単純にPerlのパスが違うって問題なら、 XPでエイリアス作れるようにするソフト使って、iswebに合わせればいい。
741 名前:nobodyさん mailto:sage [2008/06/15(日) 01:52:33 ID:???] >>737 ■サーバー #!/usr/local/bin/perl require "example.cgi"; ■ローカル #!C:/perl/bin/perl require "example.cgi"; これなら、example.cgi をアップするだけでOKです。 (意味が違うでしょうか??)
742 名前:nobodyさん mailto:sage [2008/06/15(日) 02:10:08 ID:???] >>738-741 どうも、有難うございます。 >>741 さんのが一番楽そうなので、それでいこうと思います。 どうもありがとうございました。
743 名前:nobodyさん mailto:sage [2008/06/15(日) 14:41:47 ID:???] Perlでコードを書き始めたばかりの物なのですが、基本が少し分からないので質問させて下さい。 PerlでCGIを作っているのですが、いくつかのフォームから入力を取ろうと考えています。 フォームが一箇所ではないので(検索や書き込み、削除等)、送られて来る処理が全く違うため、 送られて来たフォームによって処理を変えたいです。 例えば、検索ならこの関数、書き込みならこの関数、のように分けたいのですが、どのように 実装するのがスマートな方法でしょうか? 考えているのはhiddenで、フォーム別の値を持っておきその値によって分岐しようと思っている のですが、他にスマートな方法があれば知りたいです。 宜しくお願いします。
744 名前:nobodyさん mailto:sage [2008/06/15(日) 14:43:16 ID:???] >hiddenで、フォーム別の値を持っておきその値によって分岐 これが一番一般的で分かり易いと思うよ
745 名前:nobodyさん mailto:sage [2008/06/15(日) 15:43:06 ID:???] ところでお前ら、 postとらgetを使うときのデバッグってどうしてる? コマンドラインからPOSTを設定する方法とかあるの? めちゃめちゃ大変なんだが
746 名前:nobodyさん mailto:sage [2008/06/15(日) 17:13:16 ID:???] >>743 仕様によりますが、動作の種類によって、 スクリプトそのものを分けてしまうのはどうでしょう。
747 名前:nobodyさん mailto:sage [2008/06/15(日) 17:51:51 ID:???] 受け取った値も表示するようにするかテキストに吐かせてるだけだけど、 そんなに面倒?
748 名前:nobodyさん mailto:sage [2008/06/15(日) 17:55:33 ID:???] 何をやってるのかよくわかんないけど、どうやってコーディングするかという問題より、 postでもgetでも、与えられる引数をちゃんとチェックすることで、自然と動作の分岐が行えると思うんだけど
749 名前:nobodyさん mailto:sage [2008/06/16(月) 02:30:03 ID:???] 質問者の想定とは違うかもしれないが、 | ̄ ̄ ̄ ̄| [検索] [管理] [ほげほげ]  ̄ ̄ ̄ ̄ みたいな感じなら、submit に文字列を仕込むという方法が。
750 名前:nobodyさん mailto:sage [2008/06/16(月) 10:59:18 ID:???] でも文字化けという問題が... ラジオかセレクト使えばいいと思う。 それかAjaxか
751 名前:nobodyさん mailto:sage [2008/06/16(月) 11:58:23 ID:???] >>745 普通はユニットテスト用のロボット作るんじゃね? 使ってないけど、モジュールも何種類かあるはず。
752 名前:nobodyさん mailto:sage [2008/06/16(月) 12:17:52 ID:???] じゃあ、まずは画面を見て情報を処理しキーボード操作する ロボットのAIの開発からしなきゃだな。
753 名前:nobodyさん mailto:sage [2008/06/16(月) 12:26:02 ID:???] >>752 そのAIのデバッグはどうするんですか。
754 名前:nobodyさん mailto:sage [2008/06/16(月) 12:53:21 ID:???] ニワトリが先か タマゴが先か
755 名前:nobodyさん mailto:sage [2008/06/16(月) 23:32:06 ID:???] 真ん中をとってヒヨコが先だ
756 名前:nobodyさん mailto:sage [2008/06/17(火) 00:45:20 ID:???] >>745 CGI.pm を使うなら use CGI qw(-debug);
757 名前:nobodyさん mailto:sage [2008/06/17(火) 10:41:46 ID:???] >>745 実際に色々な条件でPOST、GETさせてみて、 おかしくなったらそのつど、修正します。 あとは、スクリプトをWEB上にアップしている場合、 ユーザーの方からのバグ報告フォームを設けておくと、 問題発見が早くなります。 コマンドライン POSTで検索: www.google.co.jp/search?hl=ja&rls=GFRC%2CGFRC%3A2007-04%2CGFRC%3Aja&q=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%80POST&lr=
758 名前:nobodyさん mailto:sage [2008/06/17(火) 12:33:48 ID:???] >>757 500が帰ってきたとき、どこが悪いかどう見当つけてるかってはなしでしょ
759 名前:nobodyさん mailto:sage [2008/06/17(火) 14:47:07 ID:???] なんでTest関係のモジュール使わないの?マゾなの?
760 名前:nobodyさん mailto:sage [2008/06/17(火) 16:37:40 ID:???] 世の中には君の環境と違う環境の人もいるのだよ
761 名前:nobodyさん mailto:sage [2008/06/17(火) 18:26:54 ID:???] > 世の中には君の環境と違う環境の人もいるのだよ 意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ
762 名前:nobodyさん mailto:sage [2008/06/17(火) 18:42:33 ID:???] > 意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ 意地はってないで、「詳しいことはわかりません!!」っていうのがオトナだよ
763 名前:nobodyさん mailto:sage [2008/06/17(火) 18:53:23 ID:???] www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GFRC,GFRC:2007-04,GFRC:ja&q=perl+%e3%83%81%e3%82%a7%e3%83%83%e3%82%af
764 名前:nobodyさん mailto:sage [2008/06/18(水) 12:33:38 ID:???] つまらん('A`)1
765 名前:nobodyさん mailto:sage [2008/06/18(水) 14:54:32 ID:???] Encode::guess_encoding の結果が shiftjis or euc-jp ってなったときで困ってます。 guess_encoding のあとに $utf8 = $enc->decode($inputkeyword); とやってるのですが、エラーとなります。 「 or 」 で split して my $utf8 = Encode::decode($EncType[0], $inputkeyword); のようにしたりするのが一般的なんでしょうか? それとも Encode::decode する際に優先順位を決めたり出来て、それで decode できちゃったりするもんでしょうか?
766 名前:nobodyさん mailto:sage [2008/06/18(水) 15:02:39 ID:???] >>765 一般的かどうかは知らんが、俺は JEncode::_func_getcode() みたいな ラッパーを書いて使っている。 www.donzoko.net/source/JEncode/JEncode.pm
767 名前:nobodyさん mailto:sage [2008/06/18(水) 15:25:31 ID:???] >>766 ありがとうございます。 _func_getcode と _ambiguous、_test_mojicode を見ながら実装します。
768 名前:nobodyさん mailto:sage [2008/06/20(金) 01:13:32 ID:???] @X0(a,b,c); @X1(d,e,f); と二つリストを作って、 $Y = int(rand(2)); で$Yに0か1を入れて、それに対応したリストを使いたいのですが、どうすればいいですか? print "$X"$Y"[1]"; のような感じにしたいのですが…。
769 名前:nobodyさん mailto:sage [2008/06/20(金) 01:41:21 ID:???] print @{'X'.$Y};
770 名前:nobodyさん mailto:sage [2008/06/20(金) 01:43:48 ID:???] あ、スライスか print @{'X'.$Y}[1];
771 名前:nobodyさん mailto:sage [2008/06/20(金) 01:53:59 ID:???] >>770 カッコイー こんな風にしてた。 $Y = 'X'. int(rand(2)); print ${$Y}[1]; 横からスマソ
772 名前:768 mailto:sage [2008/06/20(金) 02:20:58 ID:???] >>769-771 素早い回答ありがとうございます。
773 名前:nobodyさん mailto:sage [2008/06/20(金) 08:10:04 ID:???] >>769-771 今時シンボリックリファレンスはやめとけ。 use strict; my @X = [[a,b,c], [d,e,f]]; print $X[0]->[1]; # ==b ($X[0][1] とも書ける) print $X[1]->[2]; # ==f
774 名前:770 mailto:sage [2008/06/20(金) 12:31:24 ID:???] >>773 >>768 に言ってくれ 前提条件に合わせてわかりやすく書いただけだ
775 名前:768 mailto:sage [2008/06/21(土) 17:41:30 ID:???] 昔やってたEBSってゲームを引っ張り出して弄ってる初心者なので、 バカの一つ覚え状態でかいてます>< >>773 の書き方は始めてみました。 ありがとうございます。
776 名前:nobodyさん mailto:sage [2008/06/21(土) 17:48:55 ID:???] ここらへんにいる連中にへりくだる必要ないと思うよ。
777 名前:nobodyさん mailto:sage [2008/06/21(土) 23:46:21 ID:???] 配列やハッシュでリファレンスを使うことを覚えると、かな〜り違うよ。
778 名前:nobodyさん mailto:sage [2008/06/22(日) 01:48:39 ID:???] >>773 s[\[\[.*\]\]][([$1])]
779 名前:778 mailto:sage [2008/06/22(日) 01:49:38 ID:???] s[\[\[(.*)\]\]][([$1])] # キャプチャし忘れたorz
780 名前:nobodyさん mailto:sage [2008/06/22(日) 02:10:15 ID:???] perlにjavaの.propertiesファイルみたいなのはないでしょうか? ちょっとしたデータをファイルの中にまとめておければ便利だと思っているのですが、 そのような奴があれば、助かります。どなたかご教授ください。
781 名前:nobodyさん mailto:sage [2008/06/22(日) 02:24:11 ID:???] >>780 Data::Properties
782 名前:nobodyさん mailto:sage [2008/06/22(日) 13:05:18 ID:???] 外部コマンドの出力結果の取り込みがうまくいきません、なぜなんでしょうか? open(COM_RET, "ping -n 10 192.168.100.1 |"); while ($data_line = <COM_RET>) { print $data_line; }; close(COM_RET);
783 名前:nobodyさん mailto:sage [2008/06/22(日) 13:27:13 ID:???] なにも表示されないってこと? pingコマンドは存在する? openの後に$|=1;したら表示される? for (`ping -n 10 192.168.100.1`){print;}ではどう?
784 名前:782 mailto:sage [2008/06/22(日) 13:28:07 ID:???] すみません。 プログラムの保存先を間違えていました。
785 名前:nobodyさん mailto:sage [2008/06/25(水) 22:01:59 ID:???] Google Wireless Transcoder経由でアクセスされるとpostで送信されてくる フォームのデータがおかしくなってたことありませんか? たとえば、なにも入力しなかったinputフォームの値が全て文字列の"VALUE"に なったり・・・
786 名前:rubi [2008/06/26(木) 00:32:36 ID:P35F8OvT] system関数で外部コマンドを実行する際、その引数にプログラム内で使用しているスカラ変数の内容を指定するのにはどうすればいいのでしょうか?
787 名前:nobodyさん mailto:sage [2008/06/26(木) 00:55:50 ID:???] system($cmd $arg1 $arg2 ・・・); 引数中にスペース等ある時は、 system qq($cmd "$arg1" "$arg2" ・・・);
788 名前:nobodyさん mailto:sage [2008/06/27(金) 16:35:38 ID:???] すみません知恵を貸してください。 こんなファイルがあります → 項目\tデータ\n 中には同じ項目でデータ違いがあります。 100\t百\n 100\t百円\n 100\t百円玉\n 同じ項目は一つで良いので一番データの短い100\t百\nを残して 残りの長い二行を削除したいと考えています。 何か良い方法は無いでしょうか。 短いデータのみ残したいので配列の重複削除サンプルは そのままでは利用不可でした。
789 名前:788 mailto:sage [2008/06/27(金) 16:38:10 ID:???] …と、そもそも重複ではないですね。 重複サンプル〜以下は忘れてください。
790 名前:nobodyさん mailto:sage [2008/06/27(金) 17:02:39 ID:???] とりあえず書いてみろ
791 名前:788 mailto:sage [2008/06/27(金) 17:30:24 ID:???] 普段はスカラーと配列くらいしか使ってません。 項目もデータもバラバラなので方法が思いつかなくて。
792 名前:nobodyさん mailto:sage [2008/06/27(金) 17:41:01 ID:???] 連想配列
793 名前:788 mailto:sage [2008/06/27(金) 17:59:26 ID:???] 初めは$DATA{項目} = データ; で一つだけ残そうと考えました。 そうじゃなくて、連想配列にしてデータサイズでソートとかあるんでしょうか? 分かりません(><)
794 名前:nobodyさん mailto:sage [2008/06/27(金) 18:21:02 ID:???] 連想配列にしてデータサイズでソートすりゃいいだろ
795 名前:nobodyさん mailto:sage [2008/06/27(金) 18:27:40 ID:???] 書かないってことはまだなにも書けない状態ってこと? まずはopenでファイル開けるの解かる?
796 名前:788 mailto:sage [2008/06/27(金) 18:50:29 ID:???] >>795 連想配列に入れてみました。 my %DATA; open R, "koumoku.txt" or die; while (<R>) { chomp; my ($key, $value) = split(/\t/); $DATA{$key} = $value; } close R; データサイズでソートは後でググってみます。 項目ごとに最短データだけ残す方法は今の時点で想像できません。。
797 名前:nobodyさん mailto:sage [2008/06/27(金) 19:15:25 ID:???] そこまで出来てるならあとは場合わけでしょ if (exists $DATA{$key}){ length($DATA{$key}) > length($value) and $DATA{$key}= $value; } else { $DATA{$key}= $value; }
798 名前:nobodyさん mailto:sage [2008/06/27(金) 19:47:44 ID:???] >>797 食事してて遅れました。 そのままコピペしたのですが望むとおりです完璧です。 項目ごとに一番小さいデータが残る。凄い考え付かない。 本当にありがとうございました。
799 名前:nobodyさん mailto:sage [2008/06/28(土) 13:36:15 ID:???] ◆◆◆◆◆◆◆◆◆毎日新聞社による日本人への誹謗中傷◆◆◆◆◆◆◆◆◆ ・母親は受験勉強をする息子の学力向上のためにフェラチオをする ・日本人女性の55%は、出会ったその日に男と寝る ・ファストフードは女子高生たちを性的狂乱状態におとしいれる ・ティーンたちはバイアグラを使ってウサギのようにセックスをする ・女子高生は、刺激のためにノーブラ・ノーパンになる ・日本の最新の流行 : 70歳の売春婦 ・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある ・日本の若い看護婦は売春婦に勝る ・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている ・15未満の子供を対象とした疑似ポルノが日本に蔓延している ・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている ・人妻は気分転換の目的で昔の恋人に抱かれに行く ・主婦は郊外のコイン・シャワーで売春をしている ・日本男子は柔道や空手の部活で男相手に童貞を捨てている ・ほとんどすべての漁師は海でマンタとSEXしている ・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している ・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する ※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です ※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです ◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki www9.atwiki.jp/mainichiwaiwai/ ◆毎日新聞問題の情報集積wiki www8.atwiki.jp/mainichi-matome/ つまり日本人なら www.vipper.net/vip552788.jpg
800 名前:nobodyさん [2008/06/29(日) 21:21:31 ID:ib7dTQ8m] シンタックスハイライト用のモジュールでオススメってありますか? Syntax::Highlight::Engine::Kateはちょっと好みじゃなかったのと、 Text::Highlightは今のところ使い方が分からないの。
801 名前:nobodyさん mailto:sage [2008/06/29(日) 21:37:01 ID:???] Text::VimColor
802 名前:nobodyさん mailto:sage [2008/06/29(日) 23:14:30 ID:???] ありがとう。日本語が上手くいかず。
803 名前:nobodyさん [2008/07/03(木) 04:34:06 ID:N0WlacZt] 日本人がイスラム過激派に狙われる可能性もあります 220 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:35:59 ID:??? イスラムや胡錦濤の記事にもhentai入ってて ニュー速の連中がアルジャジーラとかにメールしようとして 鬼女が止めに入ったり、なかなかわかってるなぁと。 262 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:43:47 ID:??? つーか原理主義者は日本に入り込んでいるし組織もあるから 原理主義者によって白昼堂々人通りのある場所で首を掻き切られて 助教授が殺されて犯人が何も特定できていないわけで・・・ 297 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:51:28 ID:??? >>272 いや・・・それが・・・ タレコミより前に韓国でコーランが焼かれたと報道されてて アルジャジーラTVより韓国でコーランを燃やす映像が放映され、アラブ諸国でさまざまの反応が出ている。 ・その映像を見た老人がショック死(サウジアラビア) ・その映像を見た青年ら十数人が韓国大使館に投石(シリア) ★祭り★ 「日本の母は息子の性処理係」毎日新聞が捏造記事41 human7.2ch.net/test/read.cgi/ms/1215003832/ ★祭り★ 【毎日・変態報道】 毎日新聞、「2ちゃんねる」を名指し…「女性社員中傷書きこみで法的措置」で★26 mamono.2ch.net/test/read.cgi/newsplus/1215016627/ 【記者】毎日新聞の英語版記事で日本を侮辱【豪人】 academy6.2ch.net/test/read.cgi/english/1213971760/ 【Daily】毎日新聞英語版がひどすぎる 3【WaiWai】 society6.2ch.net/test/read.cgi/mass/1214603376/ 【毎日新聞】 iチャネル解約スレ 【変態報道】 hobby11.2ch.net/test/read.cgi/keitai/1214802475/