• ベストアンサー

ダブルクォーテーションの中に文を使いたい。

my $i = 100;としてあるとき、 print "検索結果は$i件です"; とすると"検索結果は100件です"と表示されますよね。 このときに、$iに加算せず、また$iの他に変数を作らず、 "検索結果は101件です"と表示されるように、 print文の引数、ダブルクォーテーション内に手を加えたいのですが どのようにしたら良いのでしょうか? どなたかアドバイスしていただけると嬉しいです。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

あんまり使うことをおすすめできんのですが、どうしてもということならば print <<_HTML_ 検索結果は${\do{$i+1}}件です _HTML_ こうします。 doの中には関数呼び出しも書けます。

wnsml
質問者

お礼

ありがとうございます! 無事に表示できました。気をつけながら使わせていただきます _ _

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

その他の回答 (4)

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

配列コンテキストにしていいなら print "検索結果は@{[$i+1]}件です\n"; 無理矢理スカラーコンテキストにしたいなら print "検索結果は@{[scalar ($i+1)]}件です\n"; #4 と同じく, 任意の式が使えます.

wnsml
質問者

お礼

ありがとうございます! なるほどー、と頷いてしまいました。全く思いつかない方法でした。。 配列のリファレンスにしてからデリファレンスするのですね。 使わせていただきます _ _

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

#2です。 #1さんのやり方は、ヒアドキュメントがあっても使えます。 #! /usr/bin/perl my $count = 100; printf <<"_HTML_", $count+1; 検索結果は%d件です。 _HTML_

wnsml
質問者

補足

すみません、説明不足でした; 何度もすみません、ありがとうございます _ _ ヒアドキュメントを使う際に、 $i以外にもいくつもの変数をその中に入れるので printfを使うと変数の配置がやりにくくなってしまうんです; ですので、文中で直接使える方法があればいいなと思い再度質問させていただきました。 P.S. "${print $i}"を使えないかな、とも考えたのですが、未だにダブルクォーテーション内に手を加えやる方法が思いつかないです;

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

#1さんの方法以外にもこんなやり方もあります。 print "検索結果は" . ($i+1) . "件です";

wnsml
質問者

お礼

ありがとうございます。使わせていただきます _ _

全文を見る
すると、全ての回答が全文表示されます。
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

やる方法はありますけど、 printf "検索結果は%d件です", $i+1; ではいけないのですか?

wnsml
質問者

補足

ありがとうございます。printf使わせていただきます_ _ 質問文に書き忘れてしまったのですが(すみません)、 質問文の様なときや、またヒアドキュメント print << "_HTML_" うんやらかんやら $i なんやらかんやら _HTML_ の時で困っているので、もし宜しければ"やる方法"、ご教授していただけると嬉しいです _ _

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

関連するQ&A

  • ダブルコーテーションやシングルコーテーション

    私の持っている参考書の中に、次のように、 変数をダブルコーテーション、シングルコーテーション、およびピリオドで囲んでいるSQL文があるのですが、 この場合、なぜ、ダブルコーテーション、またはシングルコーテーションのみでは駄目なのでしょうか? [参考書の記載] where カラム名>="'.変数.'" ※変数は日付が入ります。varchar型です。

    • ベストアンサー
    • MySQL
  • ダブルクォーテーションで囲まないと表示できない変数

    ネットから拾ってきたサンプルソースをphp5.2.3を使って試行錯誤中です。 今回、メール受信のソースを試しており、 exitに変数を添えて変数の確認をしていたところ、 8行目は変数が表示できず、 9行目のようにダブルクォーテーションで囲むと表示できる といった変数がいくつかあることに気付きました。 10行目などの変数は、ダブルクォーテーションなしでも表示できますし、 print関数だと、ダブルクォーテーションのあるなしにかかわらず表示できています。 どのような変数でおこる現象なのか、知りたいと興味がわきました。 ご存知の方がいらっしゃいましたら、ご回答よろしくお願い致します。 ソース概略 (文頭の数字は行数,$host/$user/$passは事前に代入済) 01 $sock = fsockopen($host, 110, $err, $errno, 10) or die("サーバーに接続できません"); 02 $buf = fgets($sock, 512); 03 if(substr($buf, 0, 3) != '+OK') die($buf); 04 $buf = _sendcmd("USER $user"); 05 $buf = _sendcmd("PASS $pswd"); 06 $data = _sendcmd("STAT"); 07 sscanf($data, '+OK %d %d', $num, $size);   // 以下、必要なもの以外はコメントアウトして確認 08 exit($num);  //表示できない 09 exit("$num"); //表示できる 10 exit($host);  //表示できる 11 print($num);  //表示できる 12 print("$num"); //表示できる

    • ベストアンサー
    • PHP
  • ダブルクォーテーションが置換できません

    いつもお世話になっております。 PHP初心者です。 シングルクォーテーションとダブルクォーテーションを文字列として入力したいと思い、以下のように記述しました。 -------------------------------------------------- $naiyo = $_POST['naiyo']; $search = array('\'','"'); $replace = array('\'\'','\"'); $naiyo2 = str_replace($search,$replace,$naiyo); -------------------------------------------------- シングルクォーテーションは置換された(文字列として表示された)のですが、ダブルクォーテーションは表示されず、ダブルクォーテーション以下の文字列が消えてしまいます。 置換ができていないというよりも、そもそもダブルクォーテーションが検索に引っかかってもいないようです。 どのようにすればダブルクォーテーションも置換できるか、お分かりの方がいらっしゃいましたらご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 変数とダブルクォーテーションの関係について

    $cookie1["$i"] = $col["$field["$i"]"]; 変数とダブルクォーテーションの記載方法ですが、 このソースで正常に動作させるには、”をどの様に記載すれば良いのでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ダブルコーテーション 、"を二つ入力する事について

    vbaなのですが ダブルコーテーションを置換する際に、 moji = Replace(moji, """", "") のように、"を二つ入力しないとエラーになりますが そのような事はヘルプのどこに書いてありますか? ヘルプで検索しても ダブルコーテーションに一致する結果はありません。 となってしまいました。

  • Excelに、ダブルクォーテーションで始まる文字列を貼り付けると、ダブルクォーテーションが消えること

    Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに ダブルクォーテーションが消えるのですが、 Excelってもともと(標凖的な動作として)そういうものですか。 (F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、 私はセルを選択して貼り付けただけでも大丈夫だと思っていました。 「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。 「ダブルクォーテーションで始まる文字列」と言っても、 ダブルクォーテーションが3つ以上あったときに消えるのは、最初の1組(2つ)ですね。 しかし、 "AAAA"""BBBB のような場合には、なぜか AAAA"BBBB になるのです。 (ちなみに、この文字列を、質問直前の質問内容確認の画面(IE)でコピーしてExcelに貼り付けたときは、違います。) どのような規則に基づいてダブルクォーテーションが消えるのかも疑問です。 このような仕様になっている理由はなんでしょうか。 また、Excelに文字列を貼り付けるという操作を頻繁に行うため、 できれば、編集状態にしなくても、 セルを選択して貼り付けするだけで、そのままダブルクォーテーションも貼り付いてほしいのですが、 そのためにはどうすればよいのでしょうか。 「セルの書式設定」で、表示形式を文字列にすればよいと思ったのですが、だめでした。 セルには文字列を入れるだけで、数式を入れたりしません。 (数式としては扱ってほしくない、という意味です。) Excelは2000です。

  • ダブルクォーテーションの削除(置換)

    $a = qq/"aaaaaa","bbbbb"/; print $a; → "aaaaa","bbbbb" としたときの、変数 $a の中にある ダブルクォーテーションを削除したいのですが、 $a =~ s/"//; では何も変化が無くて、 $a =~ tr/"/ /; では半角スペースに置換できるのですが、 $a =~ tr/"//; では何も変化がありません。 上手く出来る方法はどの様な方法でしょうか? 教えていただければありがたいです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • シングルコーテーションの検索?

    シングルコーテーションとダブルコーテーションの検索はできるのでしょうか? 「%」や「_」ならエスケイプで検索できますけどコーテーションはできませんでした。 どなたか教えてください。 検索する項目はVARCHAR2です。 DB:Oracle9i

  • ダブル、シングルクォーテーションでエラーが…

    はじめてプログラムに挑戦している者です。 独習PHPという本で、値がダブルクォーテーションで囲まれているか シングルクォーテーションで囲まれているかで、結果が違うという内容なのですが サンプル通りに入力して、ブラウザで表示すると サンプル <?php $title='サーバサイド技術の学び舎 - WINGS'; $data1="「$title」はサーバサイド技術の最新情報をお届けします。<br />"; $data2='「$title」はサーバサイド技術の最新情報をお届けします。<br />'; print($data1); print($data2); ?> ↓次のようなエラーが出てしまいます。 Parse error: parse error, expecting `']'' in C:\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\variable2.php on line 3 どうすれば正しく表示されるようになりますでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • VBA sumifの文字列のダブルコーテーション

    =(SUMIF(F860:I862,"あああ",I860:I862))-(SUMIF(F860:I862,"いいい",I860:I862)) もともと上記の数式を、変数に変えてvbaで挿入する際 "あああ"ともともとダブルコーテーションでかこまれている部分はどのように指定したらいいでしょうか? & ","あああ",I " & ここでエラーになります。。。。 .Cells(intRow3, intCell3 + 8) ="=(SUMIF(F"&" S860 " & ":I " & S862 & ","あああ",I " & S860 & ":I" & S862 & "))-(" & SUMIF(F " & S860 & " :I " & S862 & ","いいい",I " & S860 & ":I"& S862 & "))"