• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perl文字列置き換えについて)

Perl文字列置き換えについて

このQ&Aのポイント
  • PerlとCGIにおいて、文字列の置き換えについての質問です。
  • ~s///;で文字列の置き換えができますが、変な数字しか出てこないという問題が発生しています。
  • また、日本語の変換ができないという問題もあります。ぷららのサーバが重たい時の対処法も教えていただきたいです。

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6794/9659)
回答No.1

単純な記述ミスですね。 「指定変数に対する操作」を示す演算子は、「=~」です。 あなたの記述では「= ~」と間にスペースが入っていますので、これをperlがどう解釈するかというと、 「s/</555/」 の 「~」(否定) の結果を、「=」(代入)する、 となってしまいます。(「s/</555/」がどんな数値結果になってるのか、ちょっと想像つかないですが ^^;) でもたぶん、そこだけっぽいです。

chiguru2011
質問者

お礼

大変、素早い御返事、ありがとうございました。 私もこのあと自分でもう一度調べたら(数字で検索)、記述ミスであることが 分かりました。 本当にありがとうございました。 ご迷惑をおかけして、すいませんでした。 s///は、=~s///とセットだったんですね。^^; これからも宜しくお願いいたします。

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6794/9659)
回答No.2

※余談です 4294967295 は、16進数で表すと 0xFFFFFFFF でした。 ということは、ビット反転した物は 0x00000000 です。 そこから考えると「s/</555/」の値は、「何も置換されなかった false」 (=ゼロ) だったわけですね。 $name = (~0 ) により 0xFFFFFFFF が入り、10進数表示でその数字が出てきたということでした。

関連するQ&A

専門家に質問してみよう