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

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

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

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

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

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

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

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

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

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