• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:何がいけないのでしょうか?)

Perlおみくじのエラーについて

このQ&Aのポイント
  • perlを勉強した初心者がPerlおみくじのコードを書いた際にエラーが表示される問題があります。
  • エラーの原因は、正しくエスケープされていない特殊な文字が含まれているためです。
  • エラーが発生する部分を修正することで、正しく表示できるようになります。

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

  • ベストアンサー
noname#161966
noname#161966
回答No.1

よく分かりませんが、 ☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!! これの'が問題では? 最近Perl触ってないので出来ないかもしれませんが、エスケープシーケンス使って ☆^v(*^∇\')乂(\'∇^*)v^☆ヤッタネ!! こんな感じにするれば出来るかも・・・

MILLENCOLI
質問者

補足

onion_seさん回答ありがとうございます。 書き込みのとうりやってみたのですが、はやり同じエラーが表示されてしまいました。 ちなみに関係ないかもしれませんが if($d == 4) { print "<p>☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!</p>\n" } では、正しく表示されました。

その他の回答 (3)

回答No.4

No3の方への返信の $msg = "☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!"; が正しく表示されるのは合っています。 perlやJ-CODEに問題はないと思います。 最初にエラーになった $tips = '☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!'; との違いは、最初と最後がダブルクォーテーションに変わっているだけですが、ダブルクォーテーションで囲まれたシングルクォーテーション("'")やその逆のシングルクォーテーションで囲まれたダブルクォーテーション('"')は、文字列として判断されますので、意図したとおり表示されたわけです。 上の文では、最初のダブルクォーテーションから終わりのダブルクォーテーションまで ☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!! を文字列として$msgに代入していますが、 下の文は、最初のシングルクォーテーションから顔文字で使われている最初のシングルクォーテーションまで ☆^v(*^∇ までを文字列として判断し、残りの )乂('∇^*)v^☆ヤッタネ!!' の部分が処理できずにエラーになっています。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

原因については他の方と一緒です。 文字列に'や"が混ざるときは\を足すより q{~}やqq{~}にするとわかり易くなります。 $tips = '☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!'; $tips = q{☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!}; "~"の代わりはqq{~}です。 また、文字列内で使われていない記号ならば q/~/ や q|~| でもかまいません。詳しくは参考URLを。

参考URL:
http://www.rfs.jp/sitebuilder/perl/02/02.html#6%81D%83N%83H%81[%83g%82%CC%82%E6%82%A4%82%C8%89%89%8EZ%8Eq
MILLENCOLI
質問者

補足

if($d == 0) { $msg = "☆^v(*^∇')乂('∇^*)v^☆ヤッタネ!!"; $z = "最高テストてすと"; } なんでかよくわかりませんが、上記のように書いたら 正しく表示されるようになりました。 もしかして自作のサーバのperlがうまく動いてないのかも・・・ ちょっと違う質問なのですがJ-codeが正しく動いているか確認する方法はありますか?

回答No.2

$tips = '☆^v(*^∇\')乂(\'∇^*)v^☆ヤッタネ!!'; これならどうですか? 顔文字が使ってあり、わかりにくいですが、 $tips = '☆^v(*^∇' )乂( '∇^*)v^☆ヤッタネ!!'; ここで分けられているので、エラーになっています。 なので、顔文字の'の前に\を入れましょう。 そうすると、Perlではプログラムの一部ではなく、 'の文字と認識してくれます。 っていうか、No1の方と同じなんですが。 文字が原因かなー、と思われるエラーは、取り除いて いって徐々に追加していきましょう。 多少重いけど、Copalってソフトで、エラー箇所や 内容を少し詳しく教えてくれます。 あ、win版ですが。

参考URL:
http://homepage1.nifty.com/kaityo/

関連するQ&A