プロが教えるわが家の防犯対策術!

お世話になります。
perl素人なのですが必要に迫られてWEBで調べながら
ソースを解析していますが、次のコードで完全に止まってしまいました。

$hts =~ s/##([^#]+)##/$FORM{$1}/g

この場合、
#hts から ##([^#]+)## を探して $FORM{$1} に全て置き換えようとしていると思うのですが、以下2点が理解できず困っています。

1.##([^#]+)## の意味
$htsに##で囲まれた文字列が複数あるのでそれら全てを探すということでしょうか?

2.$FORM{$1} の意味
$1は1.で検索した結果だと思いますが、$FORM{ }は一体なんでしょうか?

素人がいきなり解析するのは無謀なのは承知の上ですが、
どうしても業務で必要なので、お知恵をお貸し下さい。
よろしくお願いいたします。

A 回答 (2件)

1.


perlを基準に「正規表現」で調べてごらん

2.
同じくperlでHTMLのformデータを受け取る方法を調べてごらん
    • good
    • 0
この回答へのお礼

早速ご回答いただいてありがとうございます。

1.##([^#]+)## の意味
##~##で囲まれた文字列を探す為の指定で、
##~##の間は、#以外の文字([^#])が、
1回以上出てくる(+)ということですよね、多分。

2.$FORM{$1}の意味
1.で見つけた文字列はフォームのエレメント名になっていました。
つまり各##~##の文字列を対応するエレメントの値に置き換える、
ということかと思います。

解釈はこれでいいのでしょうか・・?

お礼日時:2009/01/07 16:38

>各##~##の文字列を対応するエレメントの値に置き換える、


>解釈はこれでいいのでしょうか・・?

はい,その解釈で正しいです。
    • good
    • 0
この回答へのお礼

jjon-comさん、ありがとうございます。
お陰様でスッキリしました。
PERLはメタ文字などの特殊な指定がたくさんあって、
素人にはハードルが高いですね(^^;
今回の解析が済んだら基礎から勉強しなおします!

お礼日時:2009/01/08 10:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!