Perl/Perlの基礎知識

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

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

井上 みやび子

執筆者:井上 みやび子

Perlガイド

出力中の変数名の区切り

さて注意深い方は、私がこれまでの説明でちょっとしたごまかしをしているのにお気づきでしょうか。
print qq{$name 君は言いました。\n};
太郎_君は言いました。
この、空白です。日本語としては不自然ですよね。
この空白を無くすとどうなるでしょうか?
print qq{$name君は言いました。\n};
文法チェックをすると、以下のようなエラーが出てしまいました。
Global symbol "$name君は言いました" requires explicit package name at prog01.pl line 15.
prog01.pl had compilation errors.
これは、「$name君は言いました」までが変数名と解釈され、そんな変数は変数宣言されていないよ、というエラーメッセージなのです。

このような場合は、プログラムにどこまでが変数名なのかを伝えてやる必要があります。このためには、変数名を { と } で囲って下さい。

変数名を明確にするために { と } で囲う
print qq{${name}君は言いました。\n};
これで、以下のように空白なしで表示できます。
太郎君は言いました。

「¥n」を打たずに改行を出力する

先ほどから
太郎君は言いました。"僕は1.01533150573662 ドル持ってるんだ!"
と出力していますが、これを2行に分けて表示したい場合はどうしましょうか?改行は「\n」を入れておけばよいのでしたね。
print qq{${name}君は言いました。\n"僕は$usd_per_yen ドル持ってるんだ!"\n};
出力の途中でも、「\n」を挿入すればそこに改行が入ります。
上のプログラムの出力は、以下のようになります。
太郎君は言いました。
"僕は1.01533150573662 ドル持ってるんだ!"
この位の長さならこのような書き方でも良いですが、出力がもっと長い場合は、横につなげていくのも、毎回 print 文で切り替えるのも面倒です。このような場合、プログラム内のクオートで囲った中に改行そのものを記入しておく事ができます。

例えば、以下のように書くと、出力の時もプログラム内に書いた通り改行が反映されます。
print qq{
${name}君は言いました。
"僕は$usd_per_yen ドル持ってるんだ!"
};
この書き方は、長い文章や CGI プログラムから HTML ページを書き出すときなどに便利です。

  • 前のページへ
  • 1
  • 3
  • 4
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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