MTでPerlを学ぶ(その3・変数)

「MTでPerlを学ぶ」の第3回として、変数の続きをお話します。

1.文字列

プログラミングの世界では、文字の並びのことを「文字列」と呼びます。
例えば、「Hello, World!」も文字列の一種です。

Perlでは、文字列の定数の表し方はいくつかありますが、よく使うのは「'」または「"」で囲む方法です。
例えば、「Hello, World!」の文字列は、以下のように表すことができます。

'Hello, World!'
"Hello, World!"

「'」と「"」の違いの1つは、「エスケープシーケンス」が使えるかどうかという点です。
エスケープシーケンスとは、改行等の特殊な文字を表す書き方のことです。

「"」で文字列を囲む場合、その中でエスケープシーケンスを使うことができます。
よく使うエスケープシーケンスには、以下のようなものがあります。

エスケープシーケンス文字
\n改行
\r復帰
\tタブ
\n改行
\x○○16進数のコードで表した文字
例えば、「A」の文字は「\x41」

また、「"」で文字列を囲む場合、その中で「"」や「\」の文字を使うには、「\"」や「\\」と書きます。
例えば、「"good" job」という文字列は、以下のように表します。

"\"good\" job"

一方、「'」で文字列を囲む場合は、エスケープシーケンスは変換されません。
ただし、「\'」と「\\」は、それぞれ「'」と「\」に変換されます。
例えば、「It's perfect.」の文字列を「'」で表すには、以下のように書きます。

'It\'s perfect.'

2.変数で文字列を扱う

前回は変数で数値を扱う方法を述べましたが、文字列を扱うこともできます。
例えば、以下のように書くと、変数$aに「Hello, World!」の文字列を代入することができます。

$a = 'Hello, World!';

また、文字列を連結するには「.」という記号を使います。
例えば、変数$aの文字列の前に「Hello, 」という文字列を連結するには、以下のように書きます。

$a = 'Hello, ' . $a;

3.例

例として、以下のようなプログラムを組んでみます。

  1. 変数$aを宣言します。
  2. 変数$aに「Perl」という文字列を代入します。
  3. 変数$aの前に「Hello, 」、後に「.」を連結して、画面に表示します。
my $a;

$a = 'Perl';
print 'Hello, ' . $a . '.';

上記を含むインデックステンプレートのサンプルをダウンロード

3行目を書き換えて変数$aに代入する文字列を変えたり、あるいは4行目を書き換えて出力するメッセージを変えたりして、動作をいろいろと試してみると良いでしょう。