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

Perl コーディング初心者質問コーナー Part37

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/08/22 01:41ID:???
Perlのコーディングで困ってる人のスレです。
誰もが最初は初心者。
だからって、初心者に甘んじた質問の仕方は意味がないよ。

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

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0153nobodyさん04/09/01 00:39ID:???
>>152
途中でやめるなよ
0154nobodyさん04/09/01 00:58ID:???
>>152
してください
0155nobodyさん04/09/01 01:15ID:IFM26Jlf
すまん。152だ。

だれか教えてください。
ダウンロードというボタンをおしたら、CSVがダウンロードできる仕組みにしたいです。

が正解でした。といううことでおしえてください
0156nobodyさん04/09/01 01:23ID:???
>155
教えてやろう。
PerlもCGIも使わなくてもできる。
よって板違い。
0157nobodyさん04/09/01 01:47ID:IFM26Jlf
156よ。よく考えれば単にリンクを張ればよいな。アドバイスあんがと
0158Pearl04/09/01 01:56ID:???
print <<"END";
...
END

と終端文字列を記述すると何も表示されないのに、

print "...";
print <<"END";
...
END

とすると表示されます。(print"...";の内容は表示されません)
これは何故なんでしょうか??
初心者ですいません…。
0159nobodyさん04/09/01 02:16ID:???
そこより前のコードで"が開きっぱなしと見た。
0160nobodyさん04/09/01 12:01ID:VNRqZmig
perlでのoop時の属性についてなんですが、
hashでの実装、use fieldsでの実装
どちらがいいんでしょうか?
fieldsのが便利だと思うんですが、
内部でpseudo-hashを使ってる?らしく
pseudo-hashは今後推奨されなくなるようで
その辺り困ってます。
--------------------------------------
sub new {
my( $class, $name, $height ) = @_;
my $this = {
'name' => $name,
'height' => $height
};
bless $this, $class;
}
--------------------------------------
use fields qw( name height );
0161nobodyさん04/09/01 12:17ID:???
>>160
5.9.0以降ではpseudo-hash使わない実装に変更されたので
普通に使う分には問題ないんじゃなかったっけ。内部の
phash直接触るような行儀悪いプログラム書いてりゃ別だけど。
0162nobodyさん04/09/01 12:33ID:VNRqZmig
>>161
ありがとうございます!
なるほど、確かに、phashを直接使うなみたいな事は書いてありました。
perl6になったらこの辺も変わりそう?ですし、
perl5では、これでいいってことで!
0163nobodyさん04/09/01 18:16ID:GIk9V8QY
sendmailを使ったプログラムを作ってるんですが、どうやらメールの件名に
日本語を使う時には特別な処理が必要なのですね。

今いろいろなサイト見てますが、皆さんのオススメの解説サイトがありましたら教えてください。
おながいしますm(_ _)m
0164nobodyさん04/09/01 18:28ID:???
特別な処理???
メール送信の基本はperlに限ったことではないが
0165nobodyさん04/09/01 18:41ID:???
>>163
解説サイト?

無いよ。
嘘だと思うんなら自分で探してみ?
016616304/09/01 19:59ID:GIk9V8QY
>>164
件名の分だけ他とは違うエンコードをしないといけないという意味です。
>>165
そうなのです。あまりいいところが見つからないのです。
実際のサンプルソースとかを載せながら解説してるサイトがあるといいなと思ったのですが;
0167nobodyさん04/09/01 21:10ID:???
RFC嫁
0168nobodyさん04/09/01 21:49ID:Fq5X9xKH
print "Location: http://www.yahoo.co.jp/\n\n";
上記のコードでリダイレクトさせる前に
htmlタグを読み込ませたいと思います。

<IMG SRC="http://www.hogehoge/test.cgi" width=1 height=1>
例えば上記のようなタグを読み込ませたい場合、
どのようにコードすればいいのでしょうか?

おながいします



0169nobodyさん04/09/01 22:00ID:???
>>166
お勧めサイトは(・∀・)ココダ!!
ttp://www.ietf.org/rfc/rfc2047.txt

>>168
うーん。
> width=1 height=1
リダイレクトした「数」をカウントできればいいというわけではないの?
0170nobodyさん04/09/01 22:06ID:3SqQ1yBx
$hoge = file( "http://www.hogehoge/test.cgi" );
print "Location: (p)http://www.yahoo.co.jp/\n\n";
0171>>16304/09/01 22:26ID:5tu92ZqP
$subj = Jcode::convert(\$subj, 'jis');
$subj = MIME::Words::encode_mimeword($subj, 'B', 'iso-2022-jp');
0172nobodyさん04/09/01 22:38ID:???
>>171
今時Jcodeなんて教えるなよ
0173nobodyさん04/09/01 22:39ID:???
今5.8のサーバは少ないだろ。。つーか、ほとんど無いと思われ。
017416804/09/01 22:51ID:Fq5X9xKH
>>169-170

レスありがとうございます。
そうですね、数をカウントできればいいというわけではないです。

$hoge = file( "http://www.hogehoge/test.cgi" );
これについてなんですが、
http://www.hogehoge/test.cgi の部分に変数を用いたい場合、
どんな感じになるでしょうか?初歩的な質問すいません。
http://$variable.com/test.cgi のようなURLにしたいのですが。
$hoge = file( "http://$variable.com/test.cgi" );
で変数として扱われるんでしょうか?
017516304/09/02 01:14ID:hfUgeMHv
>>169
英語よめません;
>>171>>173
>$subj = MIME::Words::encode_mimeword($subj, 'B', 'iso-2022-jp');
これって5.8でないと駄目なんですか?使用サーバのperlは5.6ですが。
後、このモジュール?ライブラリ?ってRFC2047の
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
をクリアしてないですよね?PERLメモ読んでて、とりあえずBASE64エンコードは
なんかのモジュールでやるとしても1と2をどうしようかと迷ってます。

みなさんはちゃんと1と2に対応したサブルーチン等を作ったりしてるんでしょうか?
0176nobodyさん04/09/02 01:20ID:???
>>175
辞書ひけや馬鹿野郎
0177nobodyさん04/09/02 01:28ID:???
>>175
いいから自分で作ったというコードを晒せよ。
特別な処理とか、何を勘違いしてるのかわからん。
017816304/09/02 01:50ID:hfUgeMHv
<input type="text" name="to">
<input type="text" name="subject">
<textarea name="body"></textarea>

use MIME::Base64;
require "jcode.pl";
受け取ったフォームデータをデコード+JIS変換して%formを作成。(コード省略)
$encode_word = encode_base64($form{subject});

open MAIL,"|sendmail -t";
print MAIL<<END;
From: [email protected]
To: $form{to}
Cc:
Bcc:
Subject: =?ISO-2022-JP?B?$encode_word?=
 
$form{body}
END

これでは
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
をクリアできないですので。
0179>>16304/09/02 02:09ID:LLw2NK0r
何を期待しているのかよくわからんけど、文字列の長さなら、エンコードやら
バージョンやらモジュール云々じゃなくて、自分で制御すればいいだけでは?
ttp://www.hippo2000.info/perl/myfull.htm

018016304/09/02 02:14ID:hfUgeMHv
>>163
はい。エンコードは別にたいした問題はないのです。
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
3.encoded-word はそれぞれ独立してデコード可能でなければならない.
4.encoded-text をデコードした文字列の文字コードは,最後に ASCII が指定された状態でなければならない.
5.encoded-word が現れる出現位置に関する決まり.
 Subject や Comment のヘッダフィールドなどの, 'text' 内に出現.
 "(" と ")" で区切られた 'comment' 内に出現.
 From や To,CC ヘッダなどで,'phrase' 内に出現.
 'addr-spec' 内で出現してはならない.
 'quoted-string' 内で出現してはならない.などなど.
6.隣り合う encoded-word の間の 'linear-white-space' は無視する.

これらをクリアするのに皆さんは自分でエンコード前の準備用としてのルーチンを
自作してるんでしょうか?というのが>>175での質問です。
0181↑04/09/02 02:30ID:???
そんなに作りたいなら
ttp://www.futomi.com/subroutine/encodesubject.html
018216304/09/02 02:40ID:hfUgeMHv
>>181
>このサブルーチンは、RFC2047に完全には準拠していません。RFC2047では、ASCII文字列は、エンコードしないことを推奨していますが、このスクリプトでは、簡略化するために、すべてをエンコードしています。

紹介のサイトでは上記以外の違反はしてないみたいですが
企業でのメーラーとして使う場合はどの程度準拠すればいいのでしょうか?

ところで>>181さんは>>180の1〜6をどこまで守ってsendmailを利用されてますか?
一般的なレベルが知りたくなってきました。
0183nobodyさん04/09/02 03:27ID:???
>>182
おまいperlメモ読んでるなら、そこにあるソースをそのままもらえばいいのに。
あれならほぼokだろ。まあちょっと長いけどな。>>181のサイトは俺も見たが
asciiもエンコードしちゃう点を除けばかなりいい。jcode.plさえあれば誰でも
できるってのが手軽だしな。

そもそもPERLメモの方はsubject以外でも使えるし、デコードまでやれるルーチイだから
比べてもしょうがないな。ちなみに俺はフォームメールなど作ったことなし!
0184nobodyさん04/09/02 03:41ID:???
>>181-3
use strict環境下で動かないコードなどクソ。
0185nobodyさん04/09/02 11:21ID:3eXmd8V2
#!/usr/local/bin/perl

$logfile = "./sizecount.dat";

$count = -1;

$count += (-s "$logfile");

open(OUT,">>$logfile");
print OUT "\n";
close(OUT);

print "Content-type: text/html\n\n";
print "countdate=$count\n";

参考書通りに作ったカウンターなんですけど
アップロードして動作確認したら正常に動いたので
flashMX2004でダイナミックテキスト、変数dispcountに
表示させたいんですけど、出来ません。
チェック用の一応変数checkにはloadcompleteと表示されました。
アクションスクリプト
System.useCodepage = true;

CGIfile = "sizeount.cgi";
myLoadVars = new LoadVars();
myLoadVars.onLoad = function(){
dispcount = myLoadVars.countdate;
check = "loadcomplete";
}
myLoadVars.load(CGIfile);
018618504/09/02 11:25ID:3eXmd8V2
続き
CGIの下から2行目はprint "Content-type: text/plain\n\n";
に変更してからフラッシュでやったんですけどなぜか表示されません、、、
これまで変数を受け取るだけや送るだけのサンプルは参考書通り出来てたのですが
お願いします。
018718504/09/02 11:31ID:3eXmd8V2
追加
ブラウザのキャッシュ関係ではありません。
お願いします。
018818504/09/02 11:35ID:3eXmd8V2
度々すいません
ダイナミックテキスト,変数dispcountにはundefineと表示されます。
お願いします。
0189nobodyさん04/09/02 11:38ID:???
ぱっと見だが、Perl のコードに問題は無いと思う。
おそらく Flash の方に何らかの問題があると思われるが、
残念ながら Flash についてはこのスレで扱う範囲ではない。
019018504/09/02 11:42ID:???
>>189
わかりました。
ありがとうございました。
フラッシュ板言ってきます。
0191nobodyさん04/09/02 14:52ID:???
>>180
俺は1〜6全部クリアしたライブラリ作ったが、たいていはそこまで必要ないので
作る奴はそういないだろうな。特に何が問題なのかも分からんような奴しか集まらん
このスレには。
ちなみに1〜6を完全に満たしたままだと、そうでないアホなエンジンが5を
無視してエンコードしたものを戻せないので、X-Mailerが自身ならstrictモード、
他ならlooseモードで動くようにしてる。
商用なので公開はせんが。
0192nobodyさん04/09/02 18:06ID:LZDH898f
>>174へのレスをキボンヌでございます
0193nobodyさん04/09/02 22:18ID:0Sj0dIST
ActivePerl5.8.4を使っています。
ShiftJISのデータをDBから取得して、そのデータを使って
UTF-8のXMLファイルを作成したいのですが、うまくできません。
いろんなサイトを見てみましたが、うまくできないので
方法をご存知な方がいましたら、教えてください。
0194nobodyさん04/09/02 22:38ID:???
UTF-8に変換してください
0195nobodyさん04/09/02 23:59ID:0Sj0dIST
普通にやるとできるみたいです。
DBからできないのはなぜでしょうか?

use Encode;

my $a = "あああ";
Encode::from_to($a, "shiftjis","utf8");

$xml =<<"EOF";
<?xml version="1.0" encoding="UTF-8" ?>
<test>$a</test>
EOF

print $xml;
0196nobodyさん04/09/03 02:42ID:d4bnE4Tf
@array = (1,5,8,6,2,1,3,8,6,4) #任意の数字
から、中央値、最頻値を求めるには、どうすればいいですか?
モジュールは見つかったのですが、レンタルサーバーなので使えません。

誰かわかる人いたら教えてください。
よろしくお願いします。
0197nobodyさん04/09/03 02:59ID:???
>>196
"中央値","最頻値","アルゴリズム"でググってみてください.
0198nobodyさん04/09/03 03:23ID:???
>>192
なんでやってみないわけ?
0199nobodyさん04/09/03 09:07ID:???
>>196
@array = (1,5,8,6,2,1,3,8,6,4); #任意の数字
# 中央値
$#array % 2 ? $m=($#array+1)/2 : $m=$#array/2;
$median=(sort @array)[$m];
print "中央値は、$median。\n";
# 最頻値
for(@array){
$hindo{$_}++;
}
foreach $key (keys %hindo){
$max=$hindo{$key} if $hindo{$key} >= $max;
}
foreach $key (keys %hindo){
push(@max, $key) if $hindo{$key} == $max;
}
print "最頻値は、@max。\n";
0200nobodyさん04/09/03 09:46ID:???
>>195
DBから取り出したものがそのテストプログラムで
想定してるのと同じものかは確認したか?
020119604/09/03 11:54ID:???
>>199
ありがとうございました!
やっぱり結構難しいプログラムになるんですね。
とても自分のプログラミングテクニックじゃできませんでした・・・
0202nobodyさん04/09/03 13:23ID:???
これで難しいってか
0203nobodyさん04/09/03 13:55ID:???
わかりやすくかけば
0204nobodyさん04/09/03 22:27ID:qXHB0Gmy
Perl最新版をインスコして.plファイルをデスクトップに置いたら
トカゲのアイコンがポコチンに見えた
0205>>16304/09/03 22:51ID:???
結局163は作りたくないのか?
よくわからんが、選択肢は3つってとこか

1. このまま放置(案外これかもな)
2. JISじゃなくてUnicodeにしてMIME-Headerエンコする(作り込みなしで完璧)
3. 頑張ってJISと2047に固執する(作ったらcpanにあげてくれw)

> $header = encode('MIME-Header', $utf8);
020617404/09/04 01:17ID:jFFI5mOb
>>198
無理でございました
0207nobodyさん04/09/04 01:37ID:???
>>206
meta refreshじゃなくてLocation使う理由は?
0208nobodyさん04/09/04 11:47ID:zUjRJg63
質問でふ

http://news.fs.biglobe.ne.jp/news/photo/

にある

映画「釣りバカ日誌」の歴代のヒロイン役で誰が一番好き?

という投票結果がエラーになったり投票総数が0になったりします。

ハングル板ではビグロブによる結果改竄じゃねーかって祭りになってるので
すが、本当でしょうか?

教えてエロい人!
0209nobodyさん04/09/04 11:55ID:???
>>208
で、それがperlコーディングに何か関係あるのかね?
0210nobodyさん04/09/04 11:55ID:zUjRJg63
>208

すいませんまちがいです

http://news.fs.biglobe.ne.jp/special/sanmenkiji.html

の

最近人気急上昇の韓国俳優「四天王」で誰が一番かっこいい?

の投票でした・・・
0211nobodyさん04/09/04 12:22ID:???
ハングル板ってこんなことで祭りになるのか。
ま、スレ違い。
0212nobodyさん04/09/04 13:23ID:???
スレ違いでも答えてあげるのが人情
0213nobodyさん04/09/04 13:28ID:???
>>212
じゃあ、おまいが答えてやれよ。
0214nobodyさん04/09/04 15:42ID:llgg8ga3
|・ω・`)
0215nobodyさん04/09/04 16:07ID:???
>>208 >>210
俺が使っている
 カウンターは
  1日1000以上回ることが保証されている。
 アンケートは
  人がいなくてもリロードするだけで増えていく。
 チャットは
  必ず知らない人がいる。

プログラムは作られたとおりにしか動かないのです。
0216nobodyさん04/09/04 16:26ID:L+DB05Rw
フォームから送られてくるデータの中にある改行コードを\nに置換したいんだけど、
$str =~ s/\r\n|\r/\n/g;
でいいっけ?なんか自分が書いた以前のコードに
$str =~ s/\n\r|\r/\n/g;
っていう逆になってるのがあって色々調べたら、\r\nの方が圧倒的に多いけどたまに
\n\rって書いてるコードもあった・・・・・

\r\n || \x0D\x0A
で正規表現するのが正解だよね?
0217nobodyさん04/09/04 16:37ID:???
\r\nでいい
0218nobodyさん04/09/04 16:37ID:???
>>215
で、そのカウンターは1分で1000以上回ることは保証されているわけ?
0219nobodyさん04/09/04 17:34ID:uW2eM/jV

FreeBSD5.2.1 perl5.6.1
でperlスクリプトを書いています。
ファイルにある$$に囲まれた文字列をキーにして
ハッシュから値を取り出して出力しようとしていますが、
うまくいきません。
単純な置換ならうまくいくのですが、どうすればそのようなことが
可能なのでしょうか?

うまくいかないコード↓
while(<FILE>){
s/\$\$(.+)\$\$/$hash{\1}/g;
print $_;
}

目的の出力↓
hash("key1","val1","key2","val2")

FILE
文字列$$key1$$文字列
文字列$$key2$$文字列


出力結果
val1
val2
0220nobodyさん04/09/04 17:41ID:???
ttp://www2u.biglobe.ne.jp/~MAS/perl/waza/lmatch.html
022117404/09/04 17:47ID:jFFI5mOb
>>207
metaをどのように使うか分からないんです涙
metaにする利点はあるのでしょうか?
0222nobodyさん04/09/04 19:30ID:???
>>221
http://tohoho.wakusei.ne.jp/html/meta.htm
■ 別ページへの自動ジャンプ10秒後にURL=...で指定したURLにジャンプします。ホームページの移動の際に用いている例があります。IE3.0、Netscape Navigator 2.0 でサポートされています。
<meta http-equiv="Refresh" content="10;URL=http://xyz.com/">
022317404/09/04 19:49ID:jFFI5mOb
>>222
申し訳ないですが、
htmlでなら分かりますが、perlでは分かりません。
0224nobodyさん04/09/04 20:10ID:???
氏ね
0225nobodyさん04/09/04 20:18ID:???
.htaccessにErrorDocumentを記述して
オリジナルのエラーページを作成しています。
 
エラーの元になっているファイル/フォルダのURLをオリジナルのエラーページに表示させようと
http://<;!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI" -->
というコマンドと環境変数を使っていますが、
オリジナルのエラーページのURLが表示されます

ステップサーバー(http://stepserver.jp)というレンタルサーバーを利用しており、
そのサポートに問合せましたが、上記の記述で問題ない、との回答でした。

何かアドバイス・ヒントを頂けないでしょうか?
0226nobodyさん04/09/04 20:25ID:???
>>223
申し訳ないですが、なにが分からないのか分かりません。

>>225
申し訳ないですが、それのどこがperlに関する質問なのか分かりません。
0227nobodyさん04/09/04 20:43ID:???
どこで見た質問だったかしばらく思い出せなかった...orz

CGI: Common Gateway Interface part 11
http://pc5.2ch.net/test/read.cgi/php/1055597189/956
0228nobodyさん04/09/04 20:55ID:DfAuufFl
CGI で Perl 使って画像を出力したい(具体的にはグラフが描きたい)んですが
どうやればいいのでしょうか?
022917404/09/04 20:57ID:jFFI5mOb
ていうか、最初の質問がperl上でのhtmlタグの出力の仕方が分からないっていう
内容なんだけど、アフォですか?
meta分かったらそもそもこの質問してねーだろ??
>>224
おまえが(以下略
0230nobodyさん04/09/04 21:14ID:???
>228
ttp://homepage3.nifty.com/hippo2000/perltips/perlgrph.htm
0231nobodyさん04/09/04 21:15ID:???
>>229
metaにperlは無関係


まだ夏は終わらんのか?
0232nobodyさん04/09/04 21:17ID:???
ていうか>>174のレベルが初心者の域じゃない
>htmlタグの出力の仕方が分からないっていう
なんだこれ?おちょくってんのか
0233nobodyさん04/09/04 21:43ID:???
DQNが発生するたびに「夏が」とかいうヤシきもいよ?
0234nobodyさん04/09/04 21:43ID:???
>>230
GifGraphの解説がありましたが、最初の方に、
「CPANには他にもChart-PNGgraph、GDgraphといったものもあり、
どれが今後も残っていくのかよくわからない状態です。(2000/1/5)」
と書かれています。いったいどのモジュールが現在主流なので
しょうか。質問ばかり申し訳ありません。
0235nobodyさん04/09/04 21:53ID:???
>>232
おまえが勝手に初心者の定義を決めるな
>>174
(・∀・)カエレ!
0236nobodyさん04/09/04 23:05ID:???
>>234
主流なモジュールを使わないといけない理由は?
0237nobodyさん04/09/04 23:09ID:mKo8NLNs
cygwinのbashコンソールから、あるソフトをperlで立ち上げたとき、
そのソフトが終わらないと、そのコンソールがperlに乗っ取られた
まま使えなくなっちゃうんですが、これは仕方ないのでしょうか。
exit;入れてもダメですた。
system("Desktopmem.exe");
exit;
0238nobodyさん04/09/04 23:12ID:???
>>236
後々まで使っていきたいから、サポートっていうか、情報が
たくさん得られそうなものを選ぼうと思って・・・
0239nobodyさん04/09/04 23:51ID:DfAuufFl
>>230
ありがとうございます

>>234 >>238
http://www.hippo2000.info/cgi-bin/KbWiki/KbWiki.pl?cmd=disp&page=%B8%C5%A4%AF%A4%CA%A4%C3%A4%BF%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB
GDGraphってのに統合されたっぽいです
0240nobodyさん04/09/05 00:00ID:???
>>237
そういうものです。
コマンドの後ろに & をつけてバックグランドで実行するか、
デーモン化するのが、常套手段です。
0241nobodyさん04/09/05 00:05ID:???
xcalのその日のスケジュールをdesktopmemoのスケジュール形式に
perlで変更して保存、それをdesktopmemoに読み込ませて起動と
いうことをやりたいので(スタートアップに登録)、すると、
バッチファイルかシェルスクリプトしかないですかね。
0242nobodyさん04/09/05 00:07ID:???
ごめんなさい、>>241は>>237です。
で、ショートカットにすれば&で大丈夫のようですね。
0243nobodyさん04/09/05 00:13ID:???
>>239
ありがとうございます。
今は、GDGraphなんですね。実は、オライリーの「perlによるwebプログラミング」
とかいう本、かなり前に買ってあって、あれには、GifGraph、Gimpが中心に説明
してあったので、うーむ、ちょっと隔世の感。やってないのがいけないんだけど。
024421004/09/05 00:15ID:7pvSYkfO
>215

スレ違いなのに回答ありがとうございます。

ただ、結局何をおっしゃりたいのか今ひとつよくわからなかったんですが
プログラムの想定外の事態が起こったということでしょうか?

0245nobodyさん04/09/05 00:23ID:???
>>244
>>215は知ったかだから放置しとけ
0246nobodyさん04/09/05 06:56ID:???
さぁ、何か聞いて来い
0247nobodyさん04/09/05 10:26ID:gdlM8Pd7
掲示板のcgiで、下記のように引用された箇所の色を変えたいのですが、
どのように実現したら良いか方法をお教えください。

例えば、変数$textに下記のデータが入っているとして
--------------------------
> 引用元のテキスト1
> 引用元のテキスト2
> 引用元のテキスト3

返信テキスト
--------------------------

1桁目に半角の'>'があった行を下記のようなデータに置き換えたいと
考えております。
--------------------------
<span class="quoted">> 引用元のテキスト1
> 引用元のテキスト2
> 引用元のテキスト3</span>

返信テキスト
--------------------------

また、スレ違いの質問でしたら誘導していただけると嬉しいです。
0248nobodyさん04/09/05 10:48ID:???
>>247
マッチング
0249nobodyさん04/09/05 11:49ID:???
>>247
俺なら一行ごとに
<span class="quoted">> 引用元のテキスト1</span>
ってやってから
</span><BR>\n<span class="quoted">
だのを削除するかもなあ。
正規表現ひとつだとややこしくなりそう。
025024704/09/05 13:00ID:???
>>248 >>249
回答ありがとうございます。

その方法でやってみます。 >>249
0251nobodyさん04/09/05 14:09ID:???
>>247
$text =~ s|(^>.*(?:\n^>.*)*)|<span class="quoted">$1</span>|gm;
025224704/09/05 19:15ID:???
>>251
おお、>>247の条件はバッチリでした。

ただ引用ブロックが複数あると、2つ目以降に適用されないので、
もう1条件つけ加えることで、完全に期待通りの動作ができました。

>>248 >>249 >>251さん、とても助かりました。ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています