perlでパターンの部分を変数で可変的に指定したいのですが、どうすればよいでしょうか。if (m#$section#$titlestart(.+?)$titleend#is){$title = $1;}では駄目みたいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/05/06 21:28:15
  • 終了:--

回答(2件)

id:walrus No.1

walrus回答回数39ベストアンサー獲得回数02003/05/06 22:17:00

ポイント20pt

特に問題はなさそうに思えますが、うまく行かないのであれば次のようにしてみてはいかがでしょうか。

if (m#${section}#${titlestart}(.+?)${titleend}#is){$title = $1;}

id:jouno

するともっと初歩的な別のところのミスなのかもしれません。ありがとうございます。ちなみにエラーメッセージはこんな感じです。

Scalar found where operator expected at /virtual/jouno/public_html/rssmaker.cgid line 96, near ”m#${section}#${titlestart}”

Scalar found where operator expected at /virtual/jouno/public_html/rssmaker.cgid line 102, near ”)${linkend}”

(Might be a runaway multi-line ?? string starting on line 96)

(Missing operator before ${linkend}?)

2003/05/06 22:39:40
id:sword7 No.2

sword7回答回数28ベストアンサー獲得回数02003/05/06 23:24:45

ポイント30pt

マッチ演算子はm##で#は2つだけです。

$titlestart=’START’;

$titleend=’END’;

$_=”$titlestartタイトル$titleend”;

if (m#$titlestart(.+?)$titleend#is){$title = $1;}

print ”title=$title¥n”;

これを実行すると

title=タイトル

なりますが、こういう意味でよいですか?

エラーは別のエラーみたいです。

id:jouno

ありがとうございます。とりあえずのエラーはなくなりましたが、期待した動作はしてくれないようです。他の部分のせいのようなので、ここで終了にします。

2003/05/06 23:46:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません