人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: jouno
●カテゴリ:コンピュータ
✍キーワード:Perl パターン 変数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● walrus
●20ポイント

http://tohoho.wakusei.ne.jp/wwwperl1.htm#Expr

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

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

◎質問者からの返答

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

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}?)


2 ● sword7
●30ポイント

http://tohoho.wakusei.ne.jp/www.htm

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

$titlestart=’START’;

$titleend=’END’;

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

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

print ”title=$title¥n”;

これを実行すると

title=タイトル

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ