Perl/Perlの基礎知識

Perl での文字出力方法(2ページ目)

Perl プログラムの作業結果を分かりやすく表示する方法を覚えます。

井上 みやび子

執筆者:井上 みやび子

Perlガイド

ドルを「$」という記号で表示する

例えば、「ドル」をカタカナでなく、以下のようにドル記号 $ で表示したいとします。
これは US$1.01533150573662 にあたります。
試しにこの通り出力指定してみましょう。以下のようにプログラムを変更して下さい。
print "$name さんは 100 円 持っています。\n";
#print "これは $usd_per_yen ドルにあたります。\n";
print "これは US$$usd_per_yen にあたります。\n";
実行すると...何でしょう。見慣れないエラーが出てしまいました。
太郎 さんは 100 円 持っています。
Can't use string ("1.01533150573662") as a SCALAR ref while "strict refs" in use at prog01.pl line 17.
特殊文字の「エスケープ」

「$」は「これは変数ですよ」という印に使う記号ですので、実はそのままでは出力できません。「$」を出力したい場合は、「$」の前に「\」を書きます。
print "$name さんは 100 円 持っています。\n";
#print "これは $usd_per_yen ドルにあたります。\n";
print "これは US\$$usd_per_yen にあたります。\n";
今度はうまくいきますね。
太郎 さんは 100 円 持っています。
これは US$1.01533150573662 にあたります。
このように「\」をある文字の前に書いて、本来その文字が持っていた特殊な機能を失わせることを「\で『エスケープする』」と表現します。

「$」の他に、「%」「@」「&」、そして「\」自身も、Perl では特別な機能を持っています。このため、これらの記号を出力したい場合も同じようにエスケープして下さい。

特殊文字エスケープのプログラム例
print "Perl で \% や \@ や \& や \\ を出力する時は \\ でエスケープします。\n";
出力結果
Perl で % や @ や & や \ を出力する時は \ でエスケープします。

変数展開を一括で無効にする方法

さて、これまでの例では、
Perl で % や @ や & や \ を出力する時は \ でエスケープします。
と出力するためには、
print "Perl で \% や \@ や \& や \\ を出力する時は \\ でエスケープします。\n";
とプログラムを書かなければならなかったのですね。

これは少々読みにくいですし、記号がたくさんある場合はいちいちエスケープするのが面倒です。

このような場合は、シングルクオートで出力内容を囲うと、その範囲は特殊記号の機能を無効にできます。

シングルクオートで変数展開を無効にするプログラム
print 'Perl で % や @ や & や \ を出力する時は \ でエスケープします。',"\n";
print 'Perl の変数は $name など、変数名の前に記号を書きます。',"\n";
こうすると、記号を一つずつエスケープしなくても以下のように出力されます。
Perl で % や @ や & や \ を出力する時は \ でエスケープします。
Perl の変数は $name など、変数名の前に記号を書きます。
  • 前のページへ
  • 1
  • 2
  • 3
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます