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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/09/15(金) 14:01:51ID:gobry0n2
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >>2-10

前スレ http://pc8.2ch.net/test/read.cgi/php/1153987463/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0452nobodyさん2006/10/12(木) 21:54:06ID:???
>>451
スレ違い。こちらへドゾー

【 スクリプト改造依頼スレ 】(丸投げ) part6
ttp://pc8.2ch.net/test/read.cgi/php/1157787046/
04534512006/10/12(木) 22:04:51ID:???
>>452
失礼しました
移動します
0454nobodyさん2006/10/12(木) 22:49:49ID:???
ヒアドキュメント内でコメントアウトすることできますでしょうか?
0455nobodyさん2006/10/12(木) 23:02:48ID:???
>>454
Perl処理系が認識するコメントにはできないが、ヒアドキュメントで得られた文字列を適当に加工する
コードを追加する、という手はなくもない。


print strip_comment(<<FOO);
hoge
# hoge
hogehoge # hoge
FOO

sub strip_comment {
my($s) = @_;

$s =~ s/\s*#.*$//gm;

return $s;
}


0456nobodyさん2006/10/12(木) 23:16:34ID:???
>>454
答えようとしたら同ネタが既に出てたので正規表現だけ。
$s =~ s/(^)?[\t ]*#.*(?(1)\n)//gm;

>>455
大昔にベンチ取った時、サブルーチン末で値を返す場合は
陽に return しない方が有為な差が出る程度に速かったんだけど、
今の環境だとどうなんだろうね。興味あったら計ってみて下さい。
0457nobodyさん2006/10/12(木) 23:29:52ID:???
変に最適化するより分かりやすいコードを書く方がいいと思うなぁ
0458nobodyさん2006/10/12(木) 23:48:01ID:???
そんな処理速度が問題になるようなところはXSで書けばいいのに。
0459nobodyさん2006/10/12(木) 23:58:15ID:???
>>458
XSってなんでしょう…。
XSSなら知ってますが、XSなんて聞いたことないですね〜。
0460nobodyさん2006/10/13(金) 00:09:26ID:???
>>449
ご主人様と呼ばれて喜んでいるようなキモい人間が書いたソフトを
よく自分のマシンで動かせたね。w
0461nobodyさん2006/10/13(金) 00:09:28ID:???
ググれ
0462nobodyさん2006/10/13(金) 00:47:42ID:???
>>455-456
サンクス。
0463nobodyさん2006/10/13(金) 22:52:20ID:???
引数みたいにしてある @ は何でしょうか?

sub md5_hex(@) {
unpack 'H*', &md5;
}
0464nobodyさん2006/10/14(土) 01:07:07ID:???
>>463
perlsub の Prototypes 参照。
0465nobodyさん2006/10/14(土) 10:12:43ID:???
>>464
引数の型を定義しているということですか。
サンクス。
0466nobodyさん2006/10/15(日) 22:29:10ID:???
掲示板での投稿の処理で現在
$FORM{$name} = $value
でフォーム内容をわけていますが、
hp だけ情報を結合したいのですが

if($name eq 'hp'){$FORM{'hp'} .=$value;}
else{$FORM{$name} = $value;}

としてみましたがうまく動きません。(hpの最後の情報だけ取得されます)

if($name eq 'hp'){$FORM{'$name'} .=$value;}
else{$FORM{$name} = $value;}

としてみても結果は同じです(当たり前ですが・・・)
どのようにすればいいのでしょうか。orz
0467nobodyさん2006/10/15(日) 23:41:25ID:???
>>466
そのコードにおかしい所はない
04684662006/10/15(日) 23:57:14ID:???
レスありがとうございます・・・(・ω・`)
しかし、思いのとおりに入っていないのですが…
ちなみにhpの指定をせずに $FORM{$name} .= $value; にすると
ちゃんとhpに連結したデータが入ることは確認しています。。
0469nobodyさん2006/10/16(月) 00:04:58ID:???
たぶん、 $name が純粋に 'hp' ではないんじゃないかな。
後ろにスペースが入ってるとか、改行がついてるとか、大文字小文字が違うとか。

if($name =~ /\bhp\b/i){$FORM{$name} .=$value;}
else{$FORM{$name} = $value;}

だとどう?
04704662006/10/16(月) 00:20:30ID:???
>>469
できました・・・!!
=~ //i はわかるのですが、\bは何を意味するのか
調べてみたのですがいまいちわかりません…!
よければなんと言う呼び名か教えていただけませんか?
自分で調べたいので…!
0471nobodyさん2006/10/16(月) 00:42:19ID:???
>>470
動いたようでよかったです。
\b は正規表現での単語境界を表すメタシンボルです。
0472nobodyさん2006/10/16(月) 00:42:18ID:???
>>470
できたのかよw
>>468 の現象を見ると >>469 でもできなそうだと踏んだのになあ。
04734662006/10/16(月) 00:49:49ID:???
ちなみに/iは無くてもできましたが、>>469を使うと
後にでてくる
if ($FORM{'hp'} !~ /[1-5]/){&error("hpwo選択してください");}
が反応しなくなってしまいました…。
>>468の場合だと動いていました)
hpには1から5の数値がランダムで入るのですが…
連投すいません。
0474nobodyさん2006/10/16(月) 00:57:33ID:???
>>473
そのコードだと、

> hpには1から5の数値がランダムで入るのですが…

が真である限り、$FORM{'hp'} !~ /[1-5]/ は必ず偽になるため &error() が実行される事はありません。
そういうことではなくて?
04754662006/10/16(月) 01:01:49ID:???
>>474
あぁ、書き方がわるかったです、申し訳ない!
必ず偽になるようにテストしているのですが
&error() が返されてしまうのです。
0476nobodyさん2006/10/16(月) 01:03:41ID:???
あー、そういう風に使うつもりなら $name からスペースや改行などをとりのぞいて小文字で統一するなりして
ちゃんと 'hp' になるようにしたほうが、バグにはならないね。chomp、s///、lcとかでやってみて。

てか、条件の後出しはやめましょう。
04774662006/10/16(月) 01:07:01ID:???
>>476
そうですね、色々ややこしくなってそうです。
改めて内容の見直ししてみます。
>>466の状態でできていれば問題なかったのですが・・・(・ω・`)
レスありがとうございました。助かりました。
0478Perl初心者の中学生2006/10/16(月) 19:34:27ID:1M63qM8/
はじめまして。PerlでCGIを作成したのですが疑問があったので質問にきました。
スレ違いなら誘導してくれるとありがたいです。
質問の内容はカウンターを作っていたのですが、作成途中にできた二つのソースが
同じ内容なのに動作に違いがあることに気づき、原因がわからない。ということです。
以下のソースを見てください。
http://love.meganebu.com/~freedomworld2006/count.txt
このソースはCGI形式にして実行すると、
<img src="img/0.png" alt="0> <img src="img/0.png" alt="0> <img src="img/0.png" alt="0> <img src="img/1.png" alt="1>
と、そのまんまブラウザに表示されてしまいます。ですがカウントはしているようです。
http://love.meganebu.com/~freedomworld2006/count2.txt
しかし、こちらは上の失敗したソースと同じなのにちゃんと画像が表示され動作します。
違いといったら半角のスペースや改行があるかないかです。
なんでこんなことが起こるのか全くわかりません。ちなみにインタプリンタパスは省略してあります。
わかる方、どうか教えてください。お願いします。
0479nobodyさん2006/10/16(月) 20:07:39ID:???
今帰宅中だから帰ったら見てみるよ
0480nobodyさん2006/10/16(月) 20:13:00ID:???
>>478
count.txt 19行目:
 alt=\"$n\>\n";
count2.txt 18行目:
 alt=\"$n\">\n";
0481nobodyさん2006/10/16(月) 20:48:00ID:???
>>480
やはりソースミスでしたか・・・こういうのは人に言われて初めて気づくんですよね・・・。
ご指摘ありがとうございました。
本当に助かりました。
0482nobodyさん2006/10/16(月) 23:51:46ID:ZHxCJrpx
すみません。ネットショップを運営してるのですが、
掲示板とショッピングカートはレンタルのサーバーをかりて、
HPからリンクして使っています。ところが掲示板荒らしで困っています。
改行を繰り返し、とても見にくくて、アクセス拒否してもネットカフェなどから
投稿してきたりで、どうしようもありません。
文字数の制限は設定サービスにあるのですが改行制限はサービスにないといわれ、
$value =~ s/\r\n/<BR>/g;
$value =~ s/\r/<BR>/g;
$value =~ s/\n/<BR>/g;
$value =~ s/(<BR>){5,}//g;

これを使えと言われたのですが、本当に初心者でよくわかりません。

サーバーを代えたほうが早いですか??
0483nobodyさん2006/10/17(火) 00:14:01ID:???
てーか、ショップってことは掲示板とかもどこかに作ってもらったものなんでしょ?
そのひとが 「改行制限はサービスにない」 とかゆってんの? ワロスww
そしてこれを使えの例がひどくてさらにワロスwww

参考までに作者のサイトおしえてください><

〜.cgi のソース内を 「$value =~ s/\r/<BR>/g;」 で検索すればそれっぽいとこがあるから追加すればいいんじゃない? kwskはわからんけど
あとサーバ変えても同じだと思うんだけど。
0484nobodyさん2006/10/17(火) 00:25:20ID:???
えっと、作ってもらったんじゃなくて掲示板をかりています。
ttp://advenbbs.net/

ここのです。

$value =~ s/\r\n/<BR>/g;
$value =~ s/\r/<BR>/g;
$value =~ s/\n/<BR>/g;
$value =~ s/(<BR>){5,}//g;


コレを使えと言ったのは、元PCの先生なんですが。

なんか、自分が無知すぎて恥ずかしいので、
他に対策をとってみます。

すぐレス下さり本当に有難うございました。
まずは、勉強してみます。

0485nobodyさん2006/10/17(火) 00:44:46ID:???
うすうすそうかとは思っていたが・・・

>ベースはKENT-WEBの人気レス式アイコン掲示板YY-BOARDで見た目も使いやすさはバツグン!

(ノД`)アチャー
0486nobodyさん2006/10/17(火) 00:46:25ID:???
まあ、「レンタル掲示板」 じゃソース書き換えもできないので、
他の、しっかり対応してくれるとこから借りるのをオススメしますー。
0487nobodyさん2006/10/17(火) 00:54:00ID:???
有難うございました
m(__)m

PS.なんでみなさん、IDが???なんでしょう???
0488nobodyさん2006/10/17(火) 10:22:16ID:???
>>481
普通はdiffとるから、自ら気付く。
0489nobodyさん2006/10/17(火) 13:31:46ID:???
動作が違うなら内容が違う→同じかどうかチェック→diffって流れね、たぶん。
0490nobodyさん2006/10/17(火) 15:22:14ID:???
diffとは何でしょうか。
調べてみたのですがよくわからない部分もあったのです。
できたらやり方を教えてくれませんか?
0491nobodyさん2006/10/17(火) 15:23:22ID:???
>>490
>>調べてみたのですがよくわからない部分もあったのです。

調べてみたのですがよくわからない部分もあったので。
に訂正します。。。
0492nobodyさん2006/10/17(火) 15:26:48ID:???
「diff コマンド」
0493nobodyさん2006/10/17(火) 15:32:39ID:???
>>492
コマンドプロンプト使うんですか?
0494nobodyさん2006/10/17(火) 15:36:53ID:???
>>493
windowsには付属してないから、diffとかでぐぐってwindowsで使えるそれっぽいのを使ってみるといいよ
0495nobodyさん2006/10/17(火) 16:17:37ID:???
某秀○とかでも内容比較できるけどスレ違い
0496nobodyさん2006/10/17(火) 19:57:46ID:???
>>490
目視でのチェックは必ず見落とすからdiffというプログラムを使って比較する。
Windowsだったら、FCというコマンドがある。MSDOSの頃からある古いプログラムだけど、
目視より100万倍まし。

コマンドプロンプトで
fc file1 file2
0497nobodyさん2006/10/17(火) 22:20:48ID:???
>>490
いっそ Perl で書いてしまえ。
0498nobodyさん2006/10/17(火) 22:59:43ID:???
>>497
http://search.cpan.org/~rbs/Text-Diff-0.35/
04994972006/10/17(火) 23:55:16ID:???
>>498
あ、……ああ、ほら、練習も兼ねて、な?
0500nobodyさん2006/10/18(水) 00:00:02ID:???
> あ、……ああ、ほら、練習も兼ねて、な?

ゴミ生産して何かいいことあんの?
0501nobodyさん2006/10/18(水) 00:08:11ID:???
それなりに経験になる。
0502nobodyさん2006/10/18(水) 01:08:00ID:???
> それなりに経験になる。

K*NT 的な人間を増やしてどうなるんかね。w
0503nobodyさん2006/10/18(水) 01:11:56ID:???
色々と検索していたらDFというよさそうなソフトを見つけたのでこれを使っていきたいと思います。
機会があったらPerlで作ってみたいです。
スレ違いの話題になってしまいましたが皆さんお答えしていただきどうもありがとうございました。
0504nobodyさん2006/10/18(水) 17:13:18ID:ZtKQFgfZ
お小遣いサイトを作りたいんだすが、お小遣いサイトにあるような
ユーザー登録、マイページ、広告サイトに登録するとポイントがあがる、
クリック広告をクリックするとポイントがあがる。
などそのような機能のスクリプトがわかりません・・。

どうしたらいいでしょうか??^^;
0505nobodyさん2006/10/18(水) 17:16:31ID:???
しねばいいとおもうよ
0506nobodyさん2006/10/18(水) 17:28:12ID:???
マルチだから死んでいいよ。つーか死ね。
0507nobodyさん2006/10/18(水) 23:41:22ID:???
>>495
Rekisaとか使ったほうがよくね?
0508nobodyさん2006/10/19(木) 11:04:42ID:???
$site = '(?:www.yourfilehost.com)';
$ext = '(?:zip)'

while($data~ m/((mms|h?ttp):\/\/(?:[\w\/\.\?\=\-\&\:]*($site)?(\/)?([\w\/\.\?\-\=\&\:]*|[\w\/\.\?\=\-\&\:]*\.$ext[\w\/\.\?\=\-\:]*)))/g) {
$output = $1;
}

だと $dataに入っている ttpから始まるどのようなアドレスでも抽出して$1に入れてしまいます。

そうではなく

mms://アドレス;ポート番号 ←や
http://アドレス;ポート番号 ←や
ttp://アドレス;ポート番号 ←や
$siteに含まれてるサイト先 や
$extに含まれてる拡張子が あるときだけ $outputには入れられないですか?
0509nobodyさん2006/10/19(木) 11:51:43ID:???
できますよ。

それよりまずバックスラッシュとか見通しがひどいんで、 m/〜/ → m{〜} にして
[\w\/\.\?\=\-\&\:]* とかも $変数 = qr/〜/ にして書き直してきて。
0510nobodyさん2006/10/19(木) 12:15:36ID:???
>>508
スキームが http, ttp, mms の何れかで、且つ
$site のドメインで、且つ
$ext の拡張子を持つファイルの URL という意味なら

$scheme = qr{(?:h?ttp|mms)};
$site = qr{(?:www\.yourfilehost\.com)};
$ext = qr{(?:zip)};
@output = $data =~ m{$scheme://$site(?:\d+)?/[\w!\$&-;=@-\[\]~]+\.$ext}g;
05115102006/10/19(木) 12:17:14ID:???
訂正。正規表現中の @ の前に \
0512nobodyさん2006/10/20(金) 08:06:25ID:???
>>509-510

亀レスすみません。
一応↓のようにして出来たには出来たのですが

http://203.111.199.131:8080/test.m3u  ←を拾ったとき、test.m3uまで含めたいのですが 8080の後ろで切れてしまい
それを$outputの中に入れてしまいます。

                                            ↓ここの表記に問題がありますか?
while ($data=~ m/(((?:$site_m)[\:\d\w\-\.\/\=\?\!\-\%\&\_\#]+\:[\d]+)|h?ttp:\/\/(?:[\w\/\.\?\-\%\&\=]*$site\/[\w\/\.\?\-\%\&\=]*|[\w\/\.\?\-\%\&\=]*\.$ext[\w\/\.\%\&\-\?\=]*))/g) {
$output = $1;
0513nobodyさん2006/10/20(金) 12:26:37ID:???
>512
問題ありません。
0514nobodyさん2006/10/20(金) 22:07:24ID:???
エスケープしすぎだろ常識的に考えて・・・
0515nobodyさん2006/10/20(金) 22:15:15ID:???
>>509にレスはしてるが読んでないんだね
質問してるのに何でアドバイスは無視してるの?
0516nobodyさん2006/10/20(金) 22:39:35ID:???
ブラケットの中はエスケープしなくていいだろ常識的にk(ry
0517nobodyさん2006/10/20(金) 23:33:13ID:???
質問させてください

私がPERLで作ったCGIをPCにて閲覧している時、「戻る」ボタンを押したら
前ページのキャッシュを読み込むので、ロード時間がかからず表示が速いのですが
携帯電話で「戻る」をすると毎回CGIをロードしなおして時間がかかります。
携帯電話でも前ページを表示した時にキャッシュを読み込ませる方法はありますか?
0518nobodyさん2006/10/20(金) 23:48:49ID:???
質問です。
AAA
BBB
CCC
というファイルがあります。
一行目がAAAであるときのAAAとCCCを
AAA CCCというならびで抽出したい場合

foreach(<STDIN>){
if(/(AAA)/){
print "$1";
foreach(<STDIN>){
if(/(CCC)/){
print " $1\n";
     last; 
}
}
}
}
で上手くいきません。
ご教授お願いします。

0519nobodyさん2006/10/21(土) 01:08:52ID:???
>>517
携帯電話のブラウザにキャッシュ機能があるのかどうかによる。
ヘッダーに Cache-Control を追加してみるとか。

>>518
http://pc8.2ch.net/test/read.cgi/tech/1157874614/784
マルチ乙
0520nobodyさん2006/10/21(土) 02:29:15ID:???
>>519
魔法のiランドとかaspとかですよね?
魔法のiランドとかなら 戻るしても キャッシュが読み込まれてるっぽいので

携帯電話にはキャッシュ機能はついてそうですね
0521nobodyさん2006/10/21(土) 03:37:50ID:???
Perl の話じゃなくて、携帯電話向けの開発の話だから、
他のスレでやった方が御互いのためだと思うが。
0522nobodyさん2006/10/21(土) 04:03:30ID:???
>>521
PERLで組んでてそうなってるんだから
ここでもいいんじゃね?
0523nobodyさん2006/10/21(土) 05:03:26ID:???
教えて下さい
文字コードをjisからeucに書き直したのですが
GETで送る文字が受け取り側で化けてしまいます。
いろいろやってみたのですが上手くいきません
対処法ありましたら教えて下さい。
0524nobodyさん2006/10/21(土) 05:33:46ID:???
>>523
特別なこと書いてないからFORMからの送信だと思うけど
送信側の文字コードは確認したのですか?ヘッダの指定はしてありますか?
0525nobodyさん2006/10/21(土) 06:08:17ID:???
>>524
説明不足ですみません。
送信側の文字コードはEUCです。
FORMからではなくhtmlリンクに *.cgi?abc=あいうえお と記述しています。
(本当はpostしたいのですが別窓を開いて表示させたいので仕方なく)
05265232006/10/21(土) 06:16:03ID:???
正確に書くと<a href="javascript:openwin('*****.cgi?title=$aaaa[1]')">です。
スクリプトや格納してあるデータは全てEUCにしてあります。
0527nobodyさん2006/10/21(土) 06:33:32ID:???
すみません^^;
受け側のヘッダもEUCです。
0528nobodyさん2006/10/21(土) 07:00:16ID:????BRZ(3600)
直接、日本語を入れてるんですか?
それは文字コードやPerlの問題ではないですよ
URLエンコードしないと駄目ですよ
05295232006/10/21(土) 07:51:25ID:???
すみません勉強してきます^^;
ありがとうございました。
0530nobodyさん2006/10/22(日) 01:38:10ID:???
アクセスカウンタを製作しています。

動くには動くのですが、ほんのたまにリセットされてしまい、また0からカウントしはじめます。
対処方法などご存知でしたら教えてください
0531nobodyさん2006/10/22(日) 01:54:52ID:???
>>530
排他制御を正しく行う。
専用スレ http://pc8.2ch.net/test/read.cgi/php/1024795138/
0532nobodyさん2006/10/22(日) 01:55:36ID:???
>>531
ありがとうございます
見てみます
0533nobodyさん2006/10/22(日) 02:09:49ID:Wr8nDhA3
タイムスリップなんてことになってる...。

@array = qw(0 1 2 3);

foreach my $hoge(@array){
push @new_array,$hoge
}

my $x_array =[];
foreach my $hoge(@array){
push @$x_array,$hoge
}


print @new_array;
print @$x_array;

どなたか、これらの違いを教えてください。
速度?

予約済み変数とかいろいろ調べてみたんですが、
"[]"って何か知ってる方がいらっしゃったら
よろしくお願いします。

print [];
->ARRAY(0x274f18) ナニコレ?
0534nobodyさん2006/10/22(日) 02:16:46ID:???
>>533
man perlref
0535nobodyさん2006/10/22(日) 02:25:22ID:???
無名配列へのリファレンス
0536nobodyさん2006/10/22(日) 02:50:36ID:Wr8nDhA3
>>534 >>535
サンクス、勉強不足なのが把握。
0537nobodyさん2006/10/22(日) 13:54:06ID:envKHppf
シロートですが、どなたか教えて下さい。

if ( @list1[2] eq @list2[3] ){

とやってて、@list1[2]と@list2[3]にはそれぞれ"00001"が入っているのですが、
条件に一致しません。

if ( @list1[2] == @list2[3] ){

とすると一致します。

この例では値が"00001"ですが、実際は文字の場合もあるので、eq をつかいたいのですが、
どうしたらよいでしょうか?

Perlは文字とか数値とかあんまり意識せずに使えると思ってましたが、こういう場合は
別なんでしょうか?
0538nobodyさん2006/10/22(日) 14:00:48ID:???
>>537
シロートなら>>3で勉強してこい
0539nobodyさん2006/10/22(日) 14:12:59ID:???
すみません、質問です。

ppmでモジュールをインストールしたいです。

モジュールはSOAP::Liteです。
>search SOAP::Lite
から調べていくと、以下まで達しました。

ppm> search ResourcePool-Resource-SOAP-L
Using cached search result set 7.
1. ResourcePool-Resource-SOAP-~ [1.0101] SOAP::Lite bindings for ResourcePool
2. ResourcePool-Resource-SOAP-~ [1.0101] ResourcePool-Resource-SOAP-Lite


ここで、正式名称が分からないので、インストール/確認ができない状態です。
チルダで省略されている部分を参照するにはどうすれば良いでしょうか?

宜しくお願いします。
0540nobodyさん2006/10/22(日) 15:10:43ID:???
>>537
>>539
http://pc8.2ch.net/test/read.cgi/tech/1157874614/813
0541nobodyさん2006/10/22(日) 15:35:24ID:???
ここまでマルチが多いのは、誰かが質問を転載してるんだろうな。
恐らくマルチして指摘された奴が腹いせでやってるんだろう。
0542nobodyさん2006/10/22(日) 15:39:31ID:???
ここまでマルチが多いのは、誰かが質問を転載してるんだろうな。
恐らくマルチして指摘された奴が腹いせでやってるんだろう。
0543nobodyさん2006/10/22(日) 15:55:00ID:???
必死だな
0544nobodyさん2006/10/22(日) 15:56:17ID:???
コピペウゼー('A`)
0545nobodyさん2006/10/22(日) 16:03:05ID:???
ID表示して質問するようにすればいいよ。
0546nobodyさん2006/10/22(日) 17:34:00ID:???
CGI::Sessionを使用したいのですが

1, ユーザ→CGI だと上手くいくのですが、

2, ユーザ→CGI→モジュール→CGI 

のモジュールで

my $session=CGI::Session->new(undef,$sid,{Directory=>'../session'})

でデータを取得出来ないのですが、どうすれば取得出来るのでしょうか?
0547nobodyさん2006/10/22(日) 21:34:28ID:???
> 1, ユーザ→CGI だと上手くいくのですが、
> 2, ユーザ→CGI→モジュール→CGI 
これが意味不明だけど、$sidにはなにが入ってるの?
第2引数ってCGI.pmのオブジェクトじゃ駄目なの?
0548nobodyさん2006/10/23(月) 05:27:20ID:???
http://cyclone.slis.tsukuba.ac.jp/cgi-bin/cycmap1/cyclone.cgi?node=Perl
0549nobodyさん2006/10/23(月) 16:44:05ID:???
質問です。

$MOJIRETSU="<太字>テスト1</太字><太字>テスト2</太字><太字>テスト3</太字><太字>テスト4</太字>";

とあったときに<太字>〜</太字>を→<b>〜<b>にして出力したいです。

そこで
$MOJIRETSU =~ s/<太字>(.*)/太字/<b>$1<\/b>/;

にして実行したら

<b>テスト1</太字><太字>テスト2</太字><太字>テスト3</太字><太字>テスト4</b>

というように最初の「太字」と最後の「/太字」を参照にして置き換えをします。
それぞれで置き換えを行って

<b>テスト1</b><b>テスト2</b><b>テスト3</b><b>テスト4</b>
という結果が欲しいのですがどうすればよいでしょうか?
0550nobodyさん2006/10/23(月) 17:03:34ID:???
/太字/b/
//b/\/b/
0551nobodyさん2006/10/23(月) 17:11:54ID:???
>>549
$MOJIRETSU =~ s|<\Q太字\E>(.*?)<\Q/太字\E>|<b>$1</b>|g;
■ このスレッドは過去ログ倉庫に格納されています