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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/25(月) 19:25:51ID:???
Perlのコーディングで困ってる人のスレです。

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

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

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0267nobodyさん2008/03/30(日) 23:58:51ID:???
>>266
言っとくけど俺をあまりナメないほうがいいよ
vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
0268nobodyさん2008/03/31(月) 01:08:05ID:???
>>267
そのコピペには、もう飽きた\(^o^)/
02692592008/03/31(月) 07:25:32ID:???
>>266
後出しジャソケソカコワルイ
0270nobodyさん2008/03/31(月) 10:11:33ID:???
どっちが後出しだよw
0271nobodyさん2008/03/31(月) 12:02:54ID:???
中出しの方が気持ちいいぞ。
0272nobodyさん2008/04/01(火) 21:14:09ID:???
HTML::Templateっていうモジュールを使おうとしたら
鯖管理してる人が入れたくないです。っていうので
HTML::Templateの代わりになるような標準モジュールって何かありますかね?
個人的にはHTML::Templateの<TMPL_IF>みたいなのが使えれば大満足なんだけども

自分で作っちゃったほうが早いかな?
0273nobodyさん2008/04/02(水) 01:00:40ID:???
普通にディレクトリでも作って放り込んで、useで使うのは駄目なん?
0274nobodyさん2008/04/02(水) 10:50:31ID:???
HTML::TemplateはPurePerlだからディレクトリ作ってほうりこめばおk
0275nobodyさん2008/04/02(水) 14:04:47ID:???
昨日から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は書き換える箇所があるのですか?
基本は同じと聞いたのですが細かく言うと変更すべきところもあるんでしょうか?

どなたかよろしくお願い致します
0276nobodyさん2008/04/02(水) 14:28:33ID:???
>>275
>perlには大きくわけて2つある
ファイルを置けば動くPurePerlと、installが必要なバイナリの2種類かな?

>恐らくActivePerlの為に書かれたであろうソースをcygwinで
プログラムファイル自体にその差は無い
よって
>cygwinとActiveperlは書き換える箇所があるのですか?
書き換える箇所は無い
ただしActivePerlでは動かないものもあるかもしれない

cygwinはUNIXエミュレータ(みたいなもの)
ActivePerlはWindows版のPerlインタプリタ
同列に並べるのはおかしい

> Internet Explorer ではこのページは表示できません
このエラーが出るってことはおそらくパーミッション
0277nobodyさん2008/04/02(水) 15:21:24ID:???
>>275
書いた人です。「それは Perl だ」と言ったのも自分。

あれはCGIではなくてCLIスクリプト(=コンソールアプリ)なので、
Perl実行環境さえあればWebサーバだの何だのは要りません。
# 「標準出力に何も吐かない」ブツはCGIではない。

あなたのしたいことは、Web制作板ともWebProg板とも関係のないことです。

ブツ自体はActivePerl だろうが cygwin 上の Perl だろうが動きます。
プロンプトから perl hoge.pl するだけ。以上。

ただ、glob() に2万ファイル食わせるのはやめといたほうがいいと思うな。
0278nobodyさん2008/04/02(水) 15:33:03ID:???
直接やれwww
0279nobodyさん2008/04/02(水) 15:40:45ID:???
元ネタはここか
http://pc11.2ch.net/test/read.cgi/hp/1205922529/100

ほんとか?
0280nobodyさん2008/04/02(水) 15:52:10ID:???
>>275です
>>276
詳しくありがとうございます
勉強になります

>>277
手取り足取りスレでお世話になりました
>>277さんのお陰で目標までの道が見えたような気がします
本当に感謝しております
HTMLとTXTそれぞれ3枚づつ置いてテストしてみようとしたのですが
上記の通り読み込めませんでした
hello.plで試したところ読み込みはできているようなので
書き込み用のファイルを用意しておくべきなのかわからないです
サーバなしで動くのでしたか私はサーバを通して操作するものかと勘違いしてましたすいません
perlでできると教えてくれて本当にありがとうございます

板違いになるのかーショボーン
どこに行けばいいのか・・・
みなさんありがとうございました
02812772008/04/02(水) 16:00:03ID:???
スレ汚しまくりで、本当にごめんなさい。 > all
とりあえず、物凄い勢いで板違い。>>275さんには、教えてgoo辺りがお勧め。
当分消えよう。

>>278
間接でも偏頭痛がしたので勘弁してください。
放置するとめんどくさい流れになりそうだったので出てきました。すみません。

>>279
そこで正解です…。
0282nobodyさん2008/04/02(水) 17:09:09ID:???
winならActivePerlでいいやん。
0283nobodyさん2008/04/02(水) 21:09:16ID:???
おまえらstrawberryperl知らんのか
0284nobodyさん2008/04/03(木) 00:13:59ID:???
知らないかダメダメだから話題に出ない
それぐらい察してくれるとありがたい
0285nobodyさん2008/04/03(木) 03:38:43ID:x8vlzbgB
colinuxでいいじゃん
0286nobodyさん2008/04/03(木) 10:28:20ID:???
いろいろ出すと混乱しちゃうぉw
0287nobodyさん2008/04/03(木) 13:05:14ID:???
colinuxとクリネックスて似てるね
0288nobodyさん2008/04/03(木) 14:21:42ID:???
初心者ならActivePerl、中級者以降ならStrawberry Perlだな。
0289nobodyさん2008/04/03(木) 16:36:19ID:???
超上級者ですが ActivePerl 使ってます
0290nobodyさん2008/04/03(木) 18:06:58ID:???
perl開発者ですがperl使ってません
0291nobodyさん2008/04/03(木) 19:03:25ID:???
自分はStrawberryPerlが有り難すぎるのだけど、前はActivePerl使ってた。
StrawberryPerlと比べてActivePerlはどういうメリットがあるのかな。
PPMが便利なこともあるけど、CPANが使いやすいStrawberryPerlの方が自分は便利。
ActivePerlの方を推す方の意見を聞きたいです。
0292nobodyさん2008/04/03(木) 19:56:47ID:???
ActivePerl に一致する日本語のページ 約 560,000 件中 1 - 50 件目 (0.04 秒)
Strawberry Perl に一致する日本語のページ 約 13,000 件中 1 - 50 件目 (0.37 秒)

ActivePerl入れっぱなしだから特に探さなかった
0293nobodyさん2008/04/03(木) 20:05:15ID:???
じゃ、今のActivePerl使ってみな。
0294nobodyさん2008/04/03(木) 20:05:58ID:???
>>293 → >>291
0295nobodyさん2008/04/03(木) 22:08:39ID:???
おーこんなんあったのか
存在すらしらなかった
0296nobodyさん2008/04/03(木) 22:33:14ID:???
ActivePerlにはppmがあるし、最近は日本人がやってるppmリポジトリ(tcool)があるから
何かあっても日本語で済ませられるからなぁ。あそこだとCatalyst+DBIC+TT2もJiftyもPlaggerもそろってるし。
0297nobodyさん2008/04/04(金) 04:20:23ID:???
winでweb開発するならvmwareとかcolinuxとかいれるだろ情交
0298nobodyさん2008/04/04(金) 10:07:57ID:???
>>297
たしかにそれはもっともなんだが、クライアントの要望でWinで動かなきゃだめ、ってのでも
対応できて助かる。ほんと。
0299nobodyさん2008/04/04(金) 14:10:52ID:???
vmwareとかcolinuxって何に必要なんだ?
特殊なことをするのでなければ、cronとSpeedyCGIぐらいしか思いつかない。
0300nobodyさん2008/04/04(金) 16:49:23ID:???
サーバ機のOSにwin使うの?それならば何も言わんけど
0301nobodyさん2008/04/04(金) 17:29:46ID:???
話がどんどんズレてるぞおまいら。
0302nobodyさん2008/04/05(土) 00:28:43ID:???
PerlからDBI::ODBCでMS Accessに接続しようと思います。
SQLに日本語が混じっているときSJISだとうまくいくのですが
UTF8だと文字化けしてエラーになってしまいます。
Unicodeでも文字化けしない方法はないでしょうか?
0303nobodyさん2008/04/05(土) 03:41:48ID:???
DB 側に文字コードを指定できたはず
0304nobodyさん2008/04/07(月) 18:30:35ID:/Zogy0zf
もの凄く抽象的な質問ですがご容赦ください。


現在、mod_perl下で動いているプログラムがあります。
必要があり、これを修正してみたところ、何が悪かったのかそのままサーバダウン。

サーバダウン直前の挙動、エラーメッセージ、mod_perlの特性などから検証した結果、
プログラムの必要メモリ量が極端に増え、それに伴いメモリ不足で落ちたのではないかという結論に至りました。


さて、ここからが質問なんですが、
mod_perlのプログラムを書くにあたり、メモリ使用量などに関して、
コーディングのコツ、書くときの注意、メモリ使用量を見る方法などがありましたら教えてください。

参考になるサイトや書籍などでも構いません。
英語でも頑張って読んでみようとは思いますが、理解できるかどうかは甚だ怪しいです。
0305nobodyさん2008/04/07(月) 19:21:31ID:???
プロを雇いなさい。
0306nobodyさん2008/04/07(月) 19:50:42ID:???
修正前は全く問題なかったのなら修正部分見るだけで簡単に解かるから楽ジャン
0307nobodyさん2008/04/07(月) 21:42:21ID:TcHrwP/2
元に戻す
0308nobodyさん2008/04/07(月) 23:10:26ID:???
svn revert -R
0309nobodyさん2008/04/07(月) 23:27:22ID:???
ちゃんと初期化、解放したったらえーんとちゃうのん?
0310nobodyさん2008/04/08(火) 03:52:16ID:???
一定回数の呼び出しでリブートするしかなかったっけか。
0311nobodyさん2008/04/08(火) 06:53:24ID:O35wAre8
あるオブジェクトが属するクラス名(パッケージ名)はどこに入っているのでしょうか。
特定のオブジェクトを外部から判定したいとしたときなど、
文字列(ClassName=HASHxxxなど)を見て判断できるとも思いますが、
文字列変換が値の出力にオーバーライドされていたりするとダメですし・・

例えば、あるサブルーチンの引数をClassNameオブジェクトに限る、といったときに判定したいのです。
よろしくお願いします。
03123112008/04/08(火) 07:27:45ID:???
すみません見つかりました。判定に関しては
if ($obj->isa('ClassName')) {・・・}
この辺から探っていけそうでしたので、311の質問は一旦取り下げますm(_ _)m
0313nobodyさん2008/04/08(火) 09:05:59ID:???
>309
してます。
今回の場合に限りますが、解放されてないリソースが溜まり続けると言うより、1回の必要量が大きすぎた模様。

>305
いや、そんなこと言われても。

>306-309
質問文は後半だ。
0314nobodyさん2008/04/08(火) 09:13:08ID:???
>>313
>>1
【激速】mod_perl SpeedyCGI FastCGI【激速】
http://pc11.2ch.net/test/read.cgi/php/1149505269/
0315nobodyさん2008/04/08(火) 12:45:16ID:???
>>304
mod_perlかcgiかに関係なく
strictを付ける
サイズの予想できないデータは一括取り込みしない
ってのは当たり前だと思うんだが・・・

mod_perlで問題になりそうなのは
循環参照と意図しないクロージャくらいかな?

0316nobodyさん2008/04/08(火) 18:50:34ID:???
>314
ありがとうございます。
宗教戦争が勃発してる魔境にしか見えないのが辛いところですが。

>315
ちょっとだけ内部の挙動を変えたらメモリ容量が4倍に膨れ上がってしまいまして…。



こういうのを、topコマンドでリアルタイムに監視する以外の方法があれば教えてください。
0317nobodyさん2008/04/08(火) 19:19:20ID:???
4倍で落ちるってどんだけだよ
0318nobodyさん2008/04/08(火) 19:20:40ID:???
Devel::Sizeでどの変数がメモリ食ってるか調べてみれば?
0319nobodyさん2008/04/08(火) 19:26:09ID:???
http://search.cpan.org/perldoc?Devel::Size
http://perl.apache.org/docs/1.0/guide/performance.html#Measuring_the_Memory_of_the_Process

参考リンク
0320nobodyさん2008/04/08(火) 20:31:28ID:???
>317
単純計算ですが、総計にしてメモリ1GBほど増加です。

>318
ありがとうございます

>319
ちょうど英語にひぃひぃ言いながら読んでたところです。
0321nobodyさん2008/04/08(火) 20:55:45ID:???
メモリ量が4倍になったならMaxClientsを1/4にすりゃいいじゃん。


とりあえずこのへんも参考にするといい
http://iandeth.dyndns.org/mt/ian/archives/000624.html
http://www.typemiss.net/blog/kounoike/20060212-64
0322nobodyさん2008/04/08(火) 22:02:45ID:???
>>313
数100MBのデータを気軽に読み込んじゃうのは素人なんだってば。
だからプロを雇えと。
0323nobodyさん2008/04/08(火) 23:49:56ID:ng1N9SG/
与えられた文字列がutf8として正しいかどうか判断するのに
utf8::decode($str);
if ($str =~ /\P{IsASCII}/ and not (utf8::is_utf8($str))) {
### エラー
}
ってやってみましたが、あってますか?
0324nobodyさん2008/04/11(金) 10:40:16ID:???
モジュールがPurePerlかどうかはどうやって判断すれば良いでしょうか?
0325nobodyさん2008/04/11(金) 11:53:06ID:???
それは機械的に?
それとも手動で?
0326nobodyさん2008/04/14(月) 15:21:25ID:???
http://watalog.jugem.jp/?eid=135
↑の人と同じ悩みなんですが、jugem.jpのRSSをLWP::Simple::mirrorでミラーリングしようとすると、
RSSの内容ではなく、HTMLの内容が帰ってくるのは、どうしてですか?

RSSは以下のURLなのですが、引数を渡しているURLは、LWP::Simpleでは対応できないってでしょうか?
http://watalog.jugem.jp/?mode=rss
0327訂正2008/04/14(月) 15:22:02ID:???
http://watalog.jugem.jp/?eid=135
↑の人と同じ悩みなんですが、jugem.jpのRSSをLWP::Simple::mirrorでミラーリングしようとすると、
RSSの内容ではなく、HTMLの内容が帰ってくるのは、どうしてですか?

RSSは以下のURLなのですが、引数を渡しているURLは、LWP::Simpleでは対応できないってことでしょうか?
http://watalog.jugem.jp/?mode=rss
0328nobodyさん2008/04/14(月) 16:19:57ID:???
>>327
UAで判定してる模様。
$ua = LWP::UserAgent->new(agent=>'IEみたいなUA');
でやってみ。
0329nobodyさん2008/04/14(月) 16:25:16ID:???
>>328
ありがとうございます。いやらしいことしますね…
LWP::Simple::mirrorを使っているので、全部書き直すか、例外処理を作るしかなさそうですねorz
0330nobodyさん2008/04/14(月) 16:33:55ID:????DIA(100004)
LWP::Simple は $ua を Export 出来る
0331nobodyさん2008/04/14(月) 16:52:36ID:???
>>328の一行を追加すればいけるということでしょうか。
オブジェクト指向的な話(->とか)が全くわからないので、そういうところを避けながらコーディングしてきたのですが厳しいですね。
03323272008/04/14(月) 19:32:33ID:???
結局、LWP::UserAgentでUA偽装して、ミラーリングさせました。
今後はSimpleではなくて、こっちを使おう…
0333nobodyさん2008/04/14(月) 21:28:37ID:vhVZb6UQ
CGI::Application を使ってみようかと考えてるPerl初心者です。
Web上でいろいろサンプルコードを見ていたんですが、
使いたいモジュールがある場合は
CGI::Application::Plugin として利用するのがお決まりのように見えます。
実際、それが推奨スタイルなんでしょうか?
Log::Handler が使いたかったのですが、
単純に use Log::Handler; して使うと何か不都合があるのでしょうか?
0334nobodyさん2008/04/15(火) 07:46:19ID:m7oSRbUq
再利用しやすいようにPluginにぶら下げてるだけなんじゃないの?
好きにしたらいいと思うよ
0335nobodyさん2008/04/15(火) 11:53:04ID:7+9bkjp8
ありがとうございます!
0336いしはら2008/04/15(火) 18:41:44ID:y4DgL3Q4
------------------------------------------------
☆簡易CTIサービス(1万5千円)
http://s1s.jp/CTI/


☆自動クリックサービス
http://s1s.jp/


☆ブログ自動更新 記事投稿 コメント書き込みアプリ
http://s1s.jp/BLOG/

------------------------------------------------
 ヽ('A`)ノ
  (  )  大金星!!
  ノω|
0337nobodyさん2008/04/16(水) 14:37:06ID:???
二項分布で確率1/AをB回の試行でちょうどC回引く確率を計算したいのですが、
これらをperlかPHPで計算する方法が分かる方いましたらアドバイス頂けないでしょうか。
式は見ても理解できないのでサンプルソースを頂けると助かります。
0338nobodyさん2008/04/16(水) 15:16:19ID:???
式を見ても理解できないとコーディングなんてできないだろw
0339nobodyさん2008/04/16(水) 16:03:06ID:???
「二項分布 perl」でぐぐれ
0340nobodyさん2008/04/16(水) 17:57:49ID:???
最初の方に出て来るJUG7のソースいじりましたが、
サイコロ10000回投げて1が1666回出る確率とかだそうとする際に
数値が大きすぎるのかバグります…。
以前調べた時のソースも、数値が小さければ問題無いものの、
規模を大きくすると1.#INFというエラーが返ったり。
0341nobodyさん2008/04/16(水) 21:19:23ID:WbXSl+I/
お願いします。
与えられた文字列が大小文字同一視でハッシュのキーとして存在するかどうか、
調べる方法はないでしょうか。ハッシュキーは膨大な数あるので、配列にコピーとかは
したくないです。よろしくお願いし明日。
0342nobodyさん2008/04/16(水) 21:28:03ID:???
1 hashを作るときに小文字(あるいは大文字)に変換して作る。
2 tieで1と同じ事を行う。
好きなほうをどうぞ。
0343nobodyさん2008/04/16(水) 21:32:57ID:???
>>341
大小文字の区別はされるけどexistsって関数がある
0344nobodyさん2008/04/16(水) 21:39:38ID:???
なるほど、ありがとうございます。
実は、元の正しい表記を後で取り出したいんですが、
ハッシュのvalueは空いてるので、そこに元の表記を入れておいて
キーを大文字統一にしてみようと思います。
コピーするのと変わらないかもしれませんが。
0345nobodyさん2008/04/17(木) 04:13:49ID: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日、これについてどこにも情報がありませんでした……
0346nobodyさん2008/04/17(木) 07:21:16ID:???
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フラグを付け直す
0347nobodyさん2008/04/17(木) 09:58:36ID:???
>>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"両方してる意味がわからん。
0348nobodyさん2008/04/17(木) 14:34:42ID:FD3bsXbG
>>345です
解決しました。情報に感謝します。
>>346の内容を、Encode::〜でやりました。
こういうのって結構な落とし穴ですね。フラグのことはわかっているつもりでしたが……
0349nobodyさん2008/04/17(木) 20:17:29ID:2zzFnXWL
教えて君でスマンが、分かる人がいたら助けて。

CGI::Applicationパッケージを使っているんだけど、
param() 関数で、数字だけの長い「文字列」を受け取ると
数値リテラルとして、しかも丸められた値が返されちゃうんだけど、
文字リテラルとしてそのまま受け取れるよい方法ないかな?
03503492008/04/17(木) 22:21:21ID:???
自己レスです。
CGI.pmにまでさかのぼって調べた結果、
query()->param()は文字リテラルで返してました。
自分が書いた、表示する際の処理のバグでした。orz
0351nobodyさん2008/04/18(金) 00:03:02ID:qXgVgrBZ
いつもすみません。
自分で作ったhash refの配列がデリファレンスできません。
$array[0]->{key}
$array[0]{key}
${$array[0]}->{key}
とか書いてみましたが様々なエラーが出ました。どう書いたらいいですか?
0352nobodyさん2008/04/18(金) 00:07:12ID:???
すみません。問題を取り違えていました。デリファレンスはできてました。
ソートをしようと思い、下記のように書いたらhash refを配列扱いするなと言われます。
my @sorted = sort {$array[$b]->{score} <=> $array[$a]->{score}} @array;
よろしくお願いします。
0353nobodyさん2008/04/18(金) 00:20:08ID:???
ものすごく勘違いしてました。こういうことでした。
my @sorted = sort {$b->{score} <=> $a->{score}} @array;
0354nobodyさん2008/04/18(金) 10:01:49ID:???
そういうときもあるよ
0355nobodyさん2008/04/18(金) 18:42:42ID:J/rLxrZJ
前に2項分布について質問した者ですが、
これだけでも教えてくれると助かります…。
1.#INF の意味はなんですか?インフィニティ?
検索しても#は検索対象にならないらしく、
*.INFの設定ファイルや関係無いものが出て来るばかりで…。
0356nobodyさん2008/04/18(金) 19:06:45ID:???
知らんがな
0357nobodyさん2008/04/19(土) 09:40:11ID:???
インフォメーションじゃね?
それかインフォーラム
もしくはインフェルノ
0358nobodyさん2008/04/19(土) 12:48:02ID:n4AN2xdT
http://www.semblog.org/wiki/?rna で配布されている、
RNAというアンテナソフトを使っています。
すでに動作してるのですが、summary部分のhtmlタグを除去したいと思います。

http://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なので、なんとか改造して使い続けたいと思っています。
どうかご教示願います。
0359nobodyさん2008/04/20(日) 00:00:52ID:???
いくら何でも冷たすぎじゃないかお前ら。

>>355
備長炭 自殺方法 でぐぐれ。それでダメなら二項分布 オーバーフローとか。
0360nobodyさん2008/04/20(日) 01:46:25ID:???
>>358
現物ソース確認したわけじゃないけど
ttp://naoya.dyndns.org/~naoya/mt/archives/000611.html
の下の方にある remove_html を試してみたらどうかな。
0361nobodyさん2008/04/20(日) 02:10:18ID:???
>>358
そのモジュールについては詳しくはわからないけど、もともとのソースをいぢるんじゃなくて、
それが吐き出したものを、自前で書き換えればいいんじゃね?
0362nobodyさん2008/04/20(日) 02:30:50ID:???
元のコード見なくても

> my $encoded_descript = encode($item->{channel}->{description});
> の後に
> my $encoded_descript =~ s/<.*?>//g;
> を追加

って書いてるんだから

my $str = "<strong>大切な</strong>文書";
my $str =~ s/(.)/$1/g; # 行頭の何かが余計
print length($str);

こういうことじゃないの。
0363nobodyさん2008/04/20(日) 16:44:58ID:???
ヒアドキュメント内でハッシュリファレンスを使う場合はどのようにすればよいのでしょうか?

$text =<<EOL;
name = $h->{'name'}
mail = $h->{'mail'}
EOL

とやっても変数が展開されません。
仕方ないのでハッシュにデリファンスしてますが、
方法があったら教えてください。
0364nobodyさん2008/04/20(日) 17:36:03ID:???
本当はシングルクォートで括ってね?
0365nobodyさん2008/04/20(日) 20:52:48ID:tHisgd6U
オリジナルの携帯サイトアクセスランキングを作っています。

OUTをカウントするためなんすけど、アンカーから自前のCGIページを通過させてリンク先を表示させるにはどうすればいいですか?
0366nobodyさん2008/04/21(月) 00:00:18ID:???
自前のCGIページを通過させるアンカーを出力すればよいと思います。
■ このスレッドは過去ログ倉庫に格納されています