新しく質問する

$hts =~ s/##([^#]+)##/$FORM{$1}/g の意味を教えてください!

役に立った:2件
  • 質問者:yamako_mix
  • 投稿日時:2009/01/07 15:03
  • 困り度:困ってます
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

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

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

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

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

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

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

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:2件)
  • 参考になった:0件

No.2ベストアンサー10pt

  • 回答者:jjon-com
  • 回答日時:2009/01/08 01:07

>各##~##の文字列を対応するエレメントの値に置き換える、
>解釈はこれでいいのでしょうか・・?

はい,その解釈で正しいです。

通報する

この回答へのお礼

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

  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:SAYKA
  • 回答日時:2009/01/07 15:15

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

2.
同じくperlでHTMLのformデータを受け取る方法を調べてごらん

通報する

この回答へのお礼

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

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

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

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

  
このQ&Aは役に立ちましたか?(役に立った:2件)

このページのトップへ

Facebook公式ページ

公式Twitter