『初めてのPerl』第4章 サブルーチン

  • Perlでは、ユーザーが定義した関数のことをサブルーチン(subroutine)と呼ぶ
  • サブルーチンの名前には、頭にアンパーサンド(&)をつける(省略してもコードの意味が変わらない場合には、省略できる)
  • サブルーチンはファイル内のどこで定義してもよい(プロトタイプに関する例外はある)
  • サブルーチンのスコープは原則としてグローバル
  • 同じ名前のサブルーチン定義が2個あると、後ろにあるものが前のものを上書きする(use warningsをつければ検出可能)
  • use strict をつけると未定義変数の使用等に警告が出る。
  • プラグマで最低限必要なバージョンとして5.12以降を指定すると、暗黙のうちにstrictプラグマも有効になる

サブルーチンの中で最後に行われた計算の結果が、自動的に戻り値になる:

サブルーチンに与えた引数は、$_[0], $_[1], … といった変数に格納される(配列@_からも引数を取り出せる):

変数名の前にmyをつけることで、レキシカル変数を作れる。レキシカル変数のスコープはブロック内のみ。

可変長引数:

stateで永続的なプレイベート変数を定義する(PHPでいうstatic):

配列・ハッシュをstate変数として使う場合は、リストコンテキストでの初期化ができない

コメントを残す