• ベストアンサー

これも度忘れしました・・

$r = ($flag) ? "P" : "" $threadは任意の文字列 とします。 やりたいことは、$rと"thread"を連結したものがないか検索し、変換するというものです。 気持ちとしては↓ s/$rthread/$thread/eg; こんなことをしたいのですが、当然ながら$rthreadという変数になってしまいます。"rthread"として読み取らせるためにはどう記述すればいいでしょうか。 また、$a = "$r". "thread"という風にあらかじめ変数にいれて・・というのはなしでお願いします("thread"という文字列以外で同じような処理をするところが何箇所もあるので・・・)

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

もしやりたいことが、 if ($flag) {   s/Pthread/$thread/eg; } else {   s/thread/$thread/eg; } ということであれば、 $r = ($flag) ? "P" : ""; s/${r}thread/$thread/eg; とすることで解決できます。 ※置換文字列がコードではないので、オプションの e は本来不要です。

arcsin
質問者

お礼

ありがとうございます 解決しました~ >※置換文字列がコードではないので、オプションの e は本来不要です。 本来の記述している置換に、 s/…/($a) ? $1 : $2 /e; という処理を書いていたので落とし忘れていました・・ ご指摘ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

やりたい事が良く見えません。 まず、 > $r = ($flag) ? "P" : "" > $threadは任意の文字列 $threadはどこから出てきたのでしょうか? > やりたいことは、$rと"thread"を連結したものがないか検索し、変換するというものです。 threadは文字列ですか?スカラーですか? threadと言う文字列を、スカラー変数の変数名とみなしたい。と言う事ですか? もう少し明確にした方が、コメントが付きやすいと思います。

arcsin
質問者

お礼

ごめんなさい。 "rthread" これを書き間違ってました。 "Pthread" です。 意図はNO2さんの解釈であっています。 編集できないのはつらいですね…

すると、全ての回答が全文表示されます。

関連するQ&A