この章ではPerlの基礎について説明します。
書き終わりましたらファイルを保存しますので、TeraPadの「ファイル」の中の
クリックしますと以下のダイアログボックスが開きますので文字コードを「UTF-8N」を選択してOKを押してください。
この時、拡張子は必ず
つまり、
そして、ファイルを保存する場所は
ファイル名は自身で決めたファイル名を入力します。
表示する時に文字化けが起こるのならばブラウザのエンコードが他の文字コードになっていますので、これを変更します。
windows7の場合で説明しますと初めに画面の上で右クリックします。クリックしますとメニューが開きますのでその中のエンコードを
これで文字化けは直ります。
では先頭から解説します。
レンタルサーバを借りて、webページを動かすときにはレンタルサーバの業者により、ここの記述は違うので、Perlのパスを確認してください。
例えば以下のサーバー業者ではサイトのQ&Aに書いてあります。
「Content-type」の右側は送信されたデータがどのような内容のものなのかを示しています。
この例のようにテキスト形式(文字情報だけ)で出力するのであれば
HTML文書として出力したい場合、以下のように
つまり、CGIヘッダーはこれから送るのはテキスト形式ですよ。
もしくはHTML形式ですよと宣言する役割を持っています。
「text/html」の例は以下の通りです。
スカラーとは
次に変数について説明します。
変数とは何かしらのデータを入れる箱みたいなものです。
バッグを例に取るとバックには財布やハンカチを入れて持ち運びますが、そのバックに当たるものが変数です。
そして、このバッグに入っている財布やハンカチがデータに該当します。
もしくは、変数とはフロッピーディスクみたいなもので、その中にデータを記憶させておくことが出来ます。
$と変数名が付いた形式で初めて変数になります。
この例では変数名にcats、number1 、number2と付けましたが、名前を付ければ何でもいいというのではなく、一定のルールがあります。
1つ目は$の次の1文字目は数字で始めることはできません。
例えば$3catsという名前は付けることはできません。
2つ目は$の次の1文字目は
「アンダースコア(_)」
「aからz」「AからZ」が使えます。
3つ目は$の次の次からは
「アンダースコア(_)」
「aからz」「AからZ」、
「数字」が使えます。
4つ目は同じ文字でも大文字と小文字は全く別の変数になります。
例えば$catsと$CATSは全く違う変数になります。
また、変数名には「入れるデータに関連した名前」にして誰が見てもわかりやすくしましょう。
猫に関連しているのなら$catsなどと付けます。
次に変数へのデータの入れ方について説明します。
例の「$cats=”三毛猫”;」に「=」と言う記号がありますが、これを代入演算子と言います。数学のイコールとは関係ありません。
代入演算子は右辺のデータを左辺に入れる役割があります。
例で説明しますと$catsと言う変数に
このデータを入れる行為を「代入」と言います。
注意してほしいことは同じ変数に他のデータを代入してしまうと後から代入したデータで上書きされますので注意してください。
例えば以下の例では「三毛猫」を「どら猫」で上書きしてしまいます。
「三毛猫」「犬」のような文字列を変数に代入するには
ダブルクォートもしくはシングルクォートで囲まれたものは文字でも数字でもすべて文字列になります。
例えばダブルクォートもしくはシングルクォートで文字列を囲まないで
次に文の末尾のセミコロンについて説明します。
文の終わりにはセミコロンを必ず付けてください。
関数とはエクセルを学習したことがある人はわかると思いますが、Perlの関数の仕組みはエクセルの関数の仕組みと意味は同じです。
例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7であるならば結果は15です。
SUMには初めから指定した範囲の足し算を行うと言う仕組みが備わっています。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
Perlにもあらかじめ機能が決められている関数が有ります。
その数多くの関数の中の一つがprint関数ですが、この関数には「文字列を出力する機能」がPerlの内部機構により初めから決められています。print関数は以下のように括弧で囲んでもいいです。
つまり括弧があってもなくてもどちらでもいいです。
ダブルクォートで囲うことによって、変数の中に入っている値を表示させることが出来ます。
これを変数展開と呼びます。
この例の場合は$catsの中に代入されている三毛猫と$number1に入っている2、そして$number2に入っている3が出力されます。
つまり、
三毛猫を2匹飼っています
三毛猫を3匹飼っています
と出力します。
上の例の
例えば
また、文字列が含まれていない、つまり変数だけの
つまり、$catsに代入されている三毛猫と言う文字と$number1に代入されている2と言う数字が変数展開されなくなるので注意が必要です。
ここで気を付けてほしいことを説明します。
例えば以下の例のように
原因は$number1hikiが変数として認識されてしまうからです。
これで正しく
では今度はprint文を今までとは違う形で書く2つの方法について説明します。
ここで少し疑問に思った人がいるかもしれませんが、ドットは文字列同士を連結する演算子なのに$number1には数字の2が入っています。そこでPerlは数字の2を文字列の
これは文字列連結演算子を使う場合にはドットの右辺と左辺の値を文字列として扱うためです。
この方法は変数と文字列の間だけではなくて、変数と変数の間をカンマで区切ることもできます。