***HPクリエイターのためのCGI講座 第5回***
2.1 スカラーデータ型

スカラー変数は、一つの文字列、もしくは数値を格納できます。
スカラー変数は、変数名の頭に $ 記号が付きます。


提示したCGIプログラムを解説します。

<数値の設定>
$suji_1 = 10;
数値の10を設定
$suji_2 = 10.56;
数値の10.56を設定、実数もOK
$suji_3 = $suji_1;
スカラー変数間の代入もOK

<文字列の設定>
$moji_1 = "あいうえお";
文字列を設定
$moji_2 = "かきくけこ$moji_1";
" (ダブルクォテーション)で文字列をはさむ
$moji_3 = 'かきくけこ$moji_1';
' (シングルクォテーション)で文字列をはさむ

" (ダブルクォテーション)と ' (シングルクォテーション)の違い。
演習の実行結果を見てもらえれば分かると思いますが、$moji_2は「かきくけこあいうえお」、$moji_3は「かきくけこ$moji_1」を表示しています。
文字列の中に現れる変数の取り扱いが異なっているのが分かると思います。

" (ダブルクォテーション)で囲まれた文字列では、その中に変数名(演習の場合$moji_1)が現れると、変数の内容(演習の場合「あいうえお」)を展開します。
' (シングルクォテーション)囲まれた文字列では、変数名の判定を行わず、通常の文字列として変数名も扱います。

したがって、
$moji_2 = "かきくけこ$moji_1";
の場合は、$moji_1の「あいうえお」への置き換えが行われます。
$moji_3 = 'かきくけこ$moji_1';
の場合は、$moji_1についてはそのまま「$moji_1」の文字列として扱われます。

print "数字1=$suji_1<BR>\n";
$suji_1の代入結果を表示しています。
文字列は " (ダブルクォテーション)ではさまれているので、$suji_1は代入値に置き換えられ「数字1=10<BR>\n」と同等の文字列に変換されます。

print "数字2=$suji_2<BR>\n";
print "数字3=$suji_3<BR>\n";
print "文字4=$moji_1<BR>\n";
print "文字5=$moji_2<BR>\n";
print "文字6=$moji_3<BR>\n";

他の結果出力も、 " (ダブルクォテーション)ではさまれた文字列を使用しているので、同じように変数は内容と置き換わります。


<print文>
print文の書式は次の通りです
print ファイルハンドル 文字列;

=ファイルハンドル=
出力先を示す情報ですが、今回の場合指定がありません。
指定がない場合は標準出力が選択されます。
標準出力とはCGIの場合、ブラウザのことです。
=文字列=
出力したい文字列


<エスケープシーケンスコード>
文字列の中に\nのコードがありましたね。
" (ダブルクォテーション)ではさまれている場合は、「\n」の文字ではなく、改行コードを意味します。
これはエスケープシーケンスコードと言い、特殊なコードを明示するために使用します。
他にも次のようなコードがありますが、講習中に出てくるコードは、随時説明していきます。
個々についての詳しい説明はいたしません。

\t タブ
\n 改行
\r 復帰
\f 改ページ
\b バックスペース
\a アラーム (ベル)
\e エスケープ
\033 8進数で表した文字
\x1b 16進数で表した文字
\c[ コントロール文字
\l 次の文字を小文字にする
\u 次の文字を大文字にする
\L \Eまで小文字にする
\U \Eまで小文字にする
\E 変更の終わり


********************************************************************************
講師:ALK alk@arkland.co.jp
運営:アークランド(株) http://www.arkland.co.jp