Perl入門 ≫ LESSON1 プログラム基本

Perlのプログラム基本

まず最初に、Perlプログラムの基本をざっと説明します。
書いていくうちにわかってくることですが、先に知っておくと便利なのでなるべくがんばって読んでください。

他の言語をすでに習得している人には簡単でしょうが、プログラム初心者さんの場合はちょっとよくわからないことがあるかもしれません。
よくわからない部分は飛ばしてもかまいません。


基本の基本

できれば最低限これだけはチェックしておいてください。

文法

Perlスクリプトは一連の宣言コマンドから成り立ちます。
宣言というのは、関数宣言とかフォーマット宣言のことです。宣言に関してはサブルーチンの所でやります。

っていきなりワケわからんわーーー!!

ってなる人もいるかと思います。
ようするに、プログラム言語は「こんなことをしたい場合は、こういう風に書く!」という書き方が決まってます。それに従って書けばいい、ということです。
書き方は順に紹介します。

また、コマンド群、つまり処理の集まりは ”{ }”で囲むと一つのコマンドとして扱うことができる。これをブロックと呼びます。
これもあとで出てくるので、とりあえず言葉だけ覚えておきましょう。


文末

一つのコマンドの最後には必ず”;”を付けること。

print "hello";  #←コマンド1つめ
print "perl";   #←コマンド2つめ

但し、ブロック部分では必要なし。(ブロック部分の最後に条件文がつく場合は必要。)

コマンドは基本的に1行に1つで書くと見やすくなります。
が、続けて書いてもプログラムの内容はかわりません。

print "hello"; print "perl";

改行はプログラムのまとまりごととかで適当にいれましょう。プログラムを見やすくするためです。あとは好みの問題です。


全角空白

プログラムを見やすくするために半角スペースやタブを利用しますが、この時、間違って全角スペースを入れない様に気を付けてください。


改行・スペースを入れるか入れないかはその人の好みです。

if ($hensu == 1) {
    print "moji\n";
}

これは、次のように書いても同じです。

if($hensu==1){print "moji\n";}

どれが正解というのはないので、あとで自分で見やすいよう、好きなように書いてください。


スカラー

Perlのデータ処理の基本単位はスカラーです。変な言葉ですが、気にせずに。つまり一つの変数に格納された一つの値のことを言います。その変数をスカラー変数と言います。

一応言葉だけ覚えておいて下さい。
あまり難しく考えることはありません。

$hensu = 1;

こんな風に変数に値を定義して、その変数に対して色々な処理を行っていきます。
変数とは、何か値が入っているモノだと思ってください。数学でやったx,y等のあの変数です。

$hensuは変数名「hensu」を表します。hensuという名前のデータを入れる入れ物です。
$strは変数名「str」を表します。strという名前のデータを入れる入れ物です。
どちらにどんなデータを入れるのも自由です。

プログラムでは、変数にデータを入れて、その変数に対して「処理」を行う事が多いです。


変数

変数の名前は自分で好きにつけることができます。(半角英数文字)
が、すでにperlの中で予約語として使うことが決められている名前があります。
それは使う事ができません。

変数に代入・保存しておくことができる値は、数字か文字列のどちらかになります。 これらをリスト、つまりデータを順にまとめたものにして、配列とかハッシュ(連想配列)というものも作れます。

で、Perlは便利なことに「この変数は数字(文字)である!」という宣言をしなくていいのです。 楽ですねぇ。ただし、初期値といって、最初に何かしら値を入れておかないと怒られる場合があります。

簡単に変数の種類を紹介します。
● スカラー変数
値は数字・文字・文字列・参照。
変数名は”$”で始まる半角英数文字で定義する。
$hensu1 = 0;
$hensu2 = "test";

● 配列
配列名は”@”で始まる半角英数文字で定義する。
@hensu1 = ();
@hensu2 = (1,4,5);
@hensu3 = ("aa",0,$hensu2);

● ハッシュ
ハッシュ名は”%”で始まる半角英数文字で定義する。
%hensu1 = ();
%hensu2 = (1=>"list1", 2=>"list2");

詳しくは個別の説明を参照して下さい。


コメント文

コメントは、プログラムの説明を入れたりします。その部分は実行時無視されます。

コメントは文字”#”から行の終わりまでです。
複数行の場合は、すべて#をつけるか、または=podと=cutで囲まれた部分もコメントになります。

print "hello!"; #コメント

#################
# ここもコメント
#
#################
print "perl";
=pod
この間もコメント
複数行可能
=cut
1;

プログラムを作成中に一時的に実行したくない箇所をコメントにすることで、間違っている箇所を見つけたり、他の処理を確認することができます。


出力

これから色々演習をやっていくわけですが、結果を出力して確認しなければなりません。
その為に、もうすでに散々出てきてますが、出力コマンドである、

print "出力部分";

だけ先に覚えておいてください。


ちょっと高度なこと

ここから先はちょっと難しいかも。できればざっと目を通しておいてください。
今はわからなくても気にしない!

展開・評価

これから、展開(または評価)するという言葉が出てきます。
例えば、上で説明したprintコマンドですが、これは変数の値も出力できます。

print "$hensu";

ってな具合ですね。 出力する内容をダブルクォートで囲うと、そこに変数があれば展開して(評価されて)変数の値が入ります。
この場合、$hensu変数に「abc」が設定されていれば、「abc」が出力されます。 ですが、シングルクォートで囲った場合・・

print '$hensu';

これは展開(評価)されず、文字$で始まる単なる6文字の文字列と判断されるのでこのまま「$hensu」と出力されます。


真偽

Perlでは条件によって分岐したり繰り返しを行うことがります。 その時の条件はかで判定されます。

・・・その通り真実・条件に合っているということ。 大体の場合1と判定されます。
・・・真の反対で、条件に合っていないことです。1以外(0とか-1)で判定されます。

が、この1とか0という判定は色々場合によるので、個々の説明をよく読んでください。


特殊変数

perlでは、特殊変数と言うものが存在します。
perlの中で決められた名前の変数です。それぞれ決まった用途があるので、 これと同じ名前の変数名を自分のローカルな変数に付けることはできません。

ですが、大体$_、@_、$#など、$,@,%に続けて短い特殊な文字や数字を組み合わせたものがほとんどなので、 自分のローカル変数とブッキングすることはまずありません。

特殊変数は出てくるたびに説明しますが、$_と@_だけは良く使うのでここで説明しておきます。
$_は、文字列・リスト・ファイルを扱う関数で暗黙の処理対象となる変数で、 操作する対象の変数が省略されると、この$_に入ってる値が対象となります。

では$_には何が入っているかと言うと、直前に評価した結果とか、ファイルから読込んだ値など現在対象となっている値が入ります。

@_も同様で、対象となる配列を表します。



ページのトップへ戻る