• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特殊文字入りの文字結合を、変数にできますか?)

特殊文字入りの文字結合を、変数にできますか?

このQ&Aのポイント
  • 特殊文字入りの文字結合を変数にする方法を探しています。HTMLの変数に特殊文字を含めたい場合、エスケープシーケンス(¥$)を使用しても解決しませんでした。解決策を教えてください。
  • Perlでは、特殊文字入りの文字結合を変数にすることができます。しかし、HTMLの変数に特殊文字を含める場合、エスケープシーケンス(¥$)を使用してもうまくいきません。どのようにすれば解決できるでしょうか?
  • 特殊文字入りの文字結合を変数にする方法を教えてください。HTMLの変数に特殊文字を含める場合、エスケープシーケンス(¥$)を試しましたが、うまくいきませんでした。解決策をお願いします。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

一応 http://perldoc.jp/docs/perl/5.8.8/perlref.pod という方法はありますが ハッシュを使って $abc{'2013'} = <<"EOF"; あいうえお EOF <strong>$abc{$seireki}</strong> みたいにやるとか、他の方法を考えた方がいいと思います > $123 = "$seireki";     # 代入 エラーになりませんか?

1SYUN1
質問者

お礼

ありがとうございます! ハッシュを使って $abc{'2013'} = <<"EOF"; あいうえお EOF <strong>$abc{$seireki}</strong> で、解決いたしました! ------------------ > $123 = "$seireki";     # 代入 エラーになりませんか? エラーになりました。 $123は質問の例文として載せましたが、まさか使えない変数だとは知りませんでした。 実際に$123をプログラムに載せると500エラーが出て、使えませんでした。 ------------------ http://perldoc.jp/docs/perl/5.8.8/perlref.pod の方法は難しそうなので、これから勉強いたします。 ------------------ このたびは、誠にありがとうございました。

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

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

そもそも文の順序がおかしい. あと, $123 は特殊な変数だからそれに代入するのはやめた方がいい. eval.

1SYUN1
質問者

お礼

ご回答ありがとうございます。 $123は質問の例文として載せましたが、まさか使えない変数だとは知りませんでした。 実際に$123をプログラムに載せると500エラーがでて、使えませんでした。 文の順序もおかしいとのことと、eval.について、これから勉強していきます。 ご指導ありがとうございます。

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

関連するQ&A

  • Perlで変数中のエスケープされた特殊文字を展開

    Perlで、変数に既に格納されているエスケープされた特殊文字を、もとの文字に展開するには どのようにしたらよいでしょうか。 つまり、\t という値で格納されているのをタブ文字にしたり、\\ という値であれば\の一文字に するという事です。 ダブルクォートで定義すれば展開されると思いましたが、展開は変数の代入時に行われるだけで、 既に変数中にエスケープされて入っているものはダブルクォートを使い変数を囲んだりしても展開されません。 下記は簡単な例でやろうとしてる事を示したものです。 add変数に\tというタブを意味するエスケープされた特殊文字を含んでいるとして、その\tを タブとして展開し、abc defのようにさせたいのですが、abc\tdefと入ってしまいます。 $ cat unescape.pl #!/bin/perl $add = '\tdef'; #シングルクォートで代入すると、もちろんエスケープされたまま代入される #$add = "\tdef"; #ダブルクォートで代入すると代入時にタブへ展開される #$add = $ARGV[0]; #本当はAGRVからエスケープ特殊文字を含んだ文字列を取りたい。ARGVから代入すると、シングルクォートの時のようにそのまま代入される $tgt = 'abc'; print "add: " . $add , "\n"; print "before: " . $tgt . "\n"; $tgt .= "$add"; #既にエスケープされた形で代入されているものを、ダブルクォートで囲んで使っても展開されない print "after: " . $tgt . "\n"; $ perl unescape.pl add: \tdef before: abc after: abc\tdef

    • ベストアンサー
    • Perl
  • Perl あっていますでしょうか?

    " " と ' ' の相違は? ""の内にある変数名は、その値に変換されます。 ''の内にあるものは、そのまま文字列として扱われます。 エスケープシーケンスは "" の内に記述した場合のみです。 $a="Hello"; 文字列Helloを変数$aに代入する。 $b="$a"; 変数$aを変数$bに代入する。 $c='$a'; $aという文字列を変数$cに代入する。 ""の内で""を使うことは出来ません。 ''の内で''も使うことは出来ません。 使うときはエスケープシーケンスを使います。 print "\"Hello\"\n"; 文字列"Hello"を表示させます。 print "'Hello'"; 'Hello'を表示させます。 ""の内で''又は''の内で""を使うことは出来ます。 $a="あいうえお"; 文字列 あいうえお を変数$aに代入する。 print "\n$a\n"; 改行して あいうえお表示して 改行する。 print '\n$a'; 文字列\n$aを表示する。 文字列の結合 . (ピリオド)を使って前後の文字列を連結することが可能です。 $a="Hello"." "."World"; 変数$aに文字列Helloと半角スペースとWorldをつないだものを代入します。 $a="c"x3; 変数$aに文字cを3回つないだものを代入します。 $a="A"; 文字Aを変数$aに代入する。 $b="B"; 文字Bを変数$bに代入する。 $c="C"; 文字Cを変数$cに代入する。 print $a.$bx3.$c; 文字Aと文字Bを3回結合したものと文字Cを表示する。 画面にはabbbcと表示されます。

    • ベストアンサー
    • Perl
  • 変数にHTMLを代入する場合

    ただの文字列であれば $html = "abc"; で代入できますが、 たとえば$htmlという変数に 「 <a href="$url">$url</a> 」 という文字列を代入する場合にはどうすれば良いんでしょうか? もちろん$urlは変数名ではなく、代入された文字列を表示します。 (例:$url = "http://#/")

    • ベストアンサー
    • PHP
  • パールで「$:」は何を意味するのですか??

    パールプログラムの先頭に次の行がありました。 $: = " "; これはいったい何をやっているのでしょうか。 $:という変数へ1文字分の空白文字を代入しているというのは分かるのですが・・・ ちなみにパール起動直後にこの変数の内容を表示させてみたら_(下線)でした・・・。 パールではこの$:という変数は何に使用されているのですか。

    • ベストアンサー
    • Perl
  • 置換した文字列を変数に代入する方法

    お世話になります。 たとえば、 #!C:\Perl\bin\perl print $form->header("text/html");  : open(IN,"<file.txt"); while(<IN>){ : : s/あい(.*?)うえお/$1/; (????)←「$1」の内容を変数に代入したい : : } close(IN); というように、テキストファイルの文章中の 「あい(.*?)うえお」から(.*?)を取り出して、 その取り出した(.*?)を変数に代入したいのですが、 いろいろ試してやっているのですが、難儀して おります。どのように書いたらいいか教えてください。よろしくお願いします。 最終的にclose(IN);のあとで、print 変数;として(.*?)の文字列を表示させたいです。

    • ベストアンサー
    • Perl
  • Perlで変数に代入された文字の置き換えを行いたい

    Perlで、変数Aに代入された文字を変換し、変数Bに代入するプログラムを作りたいと思っています。 具体的には、「北海道」が変数Aに代入されると、「hokkaido」を変数Bに代入するというものです。 これを47都道府県全体でやりたいと思っています。 プログラムの都合上、 北海道 → 変数A → hokkaido → 変数B という流れで変換する必要があります。 具体的なソースを何卒ご教示いただければ幸いです。 お手数をお掛けいたしますが、アドバイスのほど、よろしくお願い致します。

    • ベストアンサー
    • Perl
  • 変数について

    Perlを勉強し始めました。 いままでプログラミングを組むことがなかったので、全くの素人 なんですが、いきなり壁に当たりました。 変数のところを勉強してるんですが、 $a=1; $a +=2; print $a みたいな感じで書かれてるのをみて、ふと疑問が。 $aに1を代入する。 $aに、$a+2を代入して、$aを表示ってことですよね。 $b +=2;にして、print $bにしないで、なんで $aに、$a+2を代入するんでしょうか?? $aは、すでに1を代入していて、$aは『1』としてるわけじゃないですか。 その$aに、また$a+2を代入するという発想がさっぱり理解できません。 普通に、$bにすればいいじゃん、その方がすっきりするじゃん、って思うんですが、なんでこんな記述方法にするのかわかりやすく教えていただけたら助かります。

    • ベストアンサー
    • Perl
  • 20100228000000+0900 ⇒ 2010.02.28

    perlで 変数$aに代入されている"20100228000000+0900"という文字を ($a=20100228000000+0900) 変数$bに"2010.02.28"と変換させて代入するには どのようにすればよいのでしょうか。 お忙しいところ恐れ入りますが,ご教授ください。

    • ベストアンサー
    • Perl
  • IFS変数について詳しい方教えて!!

    IFS変数というのを学習しました。 これは単語の区切りを認識する変数で、最初は空白とタブと改行が入っているのですが、他の文字を代入することもできるということまでは理解しました。 例として次のスクリプトが掲載されていました。 IFS=/ for i in /abc///def/ do echo $i done このスクリプトを実行すると 変数iにabc、defが順に代入され 最終的に標準出力へ abc def を表示するのだそうですが、 私の環境で全く同じスクリプトを作成して実行したところ abc def と表示されました。 /が空白に変換されて表示されるのはよいのですが、 どうも変数iに一気に全部の文字を代入してしまっている感じがします。 何度も見直したので、写し間違えてはいないと思うのです。 リナックスには色々な種類があるので、私の環境ではもっと別の書き方をする必要があるのでは、とも考えています。 私はレッドハットリナックス8.0を使用しています。 どなたか、お暇な時にでも助言をお願いします。

  • javascriptの変数とperlの変数で計算

    初めて質問させていただきます。 javascript計算で困っています n[0] -=$y_p[1][0]; のperlの変数$y_p[1][0]にjavascriptの変数xを代入して計算しようと試みました。 n[0] -= $y_p[x][0]; しかしこれでは上手くいかないようです。 こんな感じのことは出来ないのでしょうか。 よろしくお願いします。