「Perlの絵本」
著者 アンク
久しぶりなので、ちょっと長めに
この本を読んでCとPerlとの文法的な違いをまとめてみました
変数の前に$をつけ、明確な宣言というものがない
文字列を変数として扱う
“文字列”.”文字列”ピリオドで文字列同士をつなぐことができる
“z”x3で”zzz”という意味をあらわすなど掛け算もできる
文字列比較演算子を使って文字列の比較ができる
配列
@を付けてあらわす
添え字にマイナスを使って逆から数えることができる
$a=@bでは要素の個数を代入する
$#aで要素数をあらわす
連想配列
%をつけてあらわし、キー(変数名)と値を持った配列とそれらの要素の追加・削除ができる
アドレス
\$pのように記述するとアドレスをあらわし、SCALAR(xxxx)のように表示される
\\pでアドレスを参照
型グロブを使うことで同じ名前の変数、配列、連想配列が作れる
$a @a %aを作った後で*b=*aで型グロブ
制御
foreach$a(@b)
配列とともに使い、配列のすべての要素に対して処理を行う
bが配列、aが取得した値 aを省略した場合は、特殊変数$_で表すこともできる
unless(条件)
条件を満たさなければ実効
until(条件)
条件を満たすまでループ
continue
これが書かれた後の分は、次の繰り返しの最初に実行される
ラベル
ループするブロックにラベルをつけて、それを元に制御できる。
Label1:while(~){~
~
~}
next Label1;
これが実行されると、そのラベルのついたブロックの始まりにジャンプする
redo Label1;
これが実行されると、そのラベルがついたブロックをやり直す
last Label1;
ラベルのついたブロックの外まで移動
正規表現を使ってあいまいな文字列を指定できる
パターンマッチとあわせて、文字列検索が容易にできる
サブルーチンの呼び出しは定義の後でも先でもどちらでもよい