4章 サブルーチン

Perlでもユーザ定義のサブルーチンを
作れるんだそうです。(さすがに当たり前?)


この章で今のところわかったこと。

  • 定義はsubで。
  • 定義は基本的にはグローバル。
  • 呼び出す時は&で。
  • 戻り値は、最後に行われた計算の結果。
  • 引数はローカルな配列@_に代入される。
  • サブルーチンが期待するより多くの引数は、無視される。
  • プライベートな変数を作る場合はmy演算子
  • local演算子は、実はグローバル変数でどうこう...*1



戻り値が「最後に行われた計算の結果」である、
という意味はわかりますが、まだ使い方がイメージできないですね。
自分で書けば慣れるかな。


my演算子は、今までstrictのエラーを避けるために
よく知らないで使っていましたが、
プライベートな変数(レキシカル変数*2)を定義するための
演算子だったんですね。:-)


引数は、その数や型がサブルーチンの定義の冒頭に
明記されるわけではなさそうなので、
わかりにくいな、と思ったら、
以下のような感じで冒頭に書くのがいい感じなんですって。

my($a, $b) = @_; #サブルーチンのパラメータに名前を付ける

これならわかりやすいや。


と、長くなってきたので 4.7.1 localとmyの違い までで
一旦区切ります。

*1:今知らなくてもいいことみたいなので、読みましたが深くは考えません。

*2:lexical variable