Perl入門ゼミPerl入門ゼミテキスト処理、Linuxサーバー管理、Web開発ならPerlPerl›サブルーチン›hereサブルーチンの動的な生成Perlでは、サブルーチンを動的に生成することもできます。関数ジェネレータ関数ジェネレータとは、サブルーチンを生成するためのサブルーチンのことです。関数ジェネレータは、動的にサブルーチンを生成したいときに用いられるテクニックのひとつです。一般的な名称にしたがって関数ジェネレータと呼びますが、Perlの用語でいえばサブルーチンジェネレータのことです。この解説では、関数もサブルーチンも同じ意味です。"これは、実行時に生成されたサブルーチンです。サブルーチンへのリファレンスを返す。}関すジェネレータを作成するには、無名サブルーチンを作成して、そのリファレンスを、戻り値として返します。)と、生成されたサブルーチンへのリファレンスが戻りち値として取得できます。)して、サブルーチンを呼び出します。}}関数ジェネレータで引数を受け取って、その引数を生成するサブルーチンの中で利用することができます。することで、少しだけ異なったサブルーチンを複数生成することができます。型グロブを使ってサブルーチンの名前を動的に決定する型グロブを使ってサブルーチンの名前を動的に決定するサンプルです。};型グロブを利用することで、サブルーチンに別名をつけることができます。今回の例の場合は、右辺は無名サブルーチンへのリファレンスになっており、無名サブルーチンに別名をつけていることになります。無名サブルーチンに名前をつけるくらいなら、最初から名前をつけておけばよいと考えるかもしれません。無名サブルーチンに名前をつけることの利点は、実行時にサブルーチンに名前を与えることができるということです。サブルーチン名を動的に決定することができます。};型グロブ名には、変数を使うことができます。入る値によって、サブルーチン名が変化します。使用していると、エラーになります。'refs'として、シンボリックリンクの制限を無効にします。いう名前を動的につけています。$code;}BEGINを使って、コンパイル時に動的にサブルーチン名を決定するようにしておきます。有効範囲をできるだけ狭めておいたほうがよいです。関数テンプレート関数テンプレートとは、動的に複数のサブルーチンを作成するプログラム技法です。プログラムが始まる前にサブルーチンに名前をつけておくのではなくて、プログラムが始まってからサブルーチンに名前をつけます。無名サブルーチンと型グロブを利用することで、サブルーチンを動的に生成し、動的に名前をつることができます。関数テンプレートを使えば、サブルーチン名に応じた処理を作成することができます。型グロブを利用して無名サブルーチンに名前をつける。$code;}注目する点は、「サブルーチン名」と「サブルーチンの処理」に関連性があることです。戻り値として返却されます。関数テンプレートを作成するには、まずforeach文にサブルーチン名の配列を渡して繰り返し呼びます。次に無名サブルーチンを作成して、関数名を利用した処理を行います。最後に、型グロブを利用して無名サブルーチンに名前をつけてあげます。モジュールで、アクセッサーの作成の部分で利用されています。型グロブを利用して無名サブルーチンに名前をつける。}}BEGINブロックで囲って、コンパイル時に動的にサブルーチンを作成しておいたほうがよいです。しないと、この記述を行うまでは、サブルーチンを呼び出すことができません。使ってコンパイル時に読み込む方法です。関数ジェネレーターのサンプルコードです。関数ジェネレータをコードを使って解説します。"これは、実行時に生成されたサブルーチンです。サブルーチンへのリファレンスを返す。関数ジェネレータで複数のサブルーチンを生成する。関数ジェネレータの引数によって、生成するサブルーチンを動的に変更できる。}}動的に生成したサブルーチンに名前をつける型グロブを使って、動的に生成したサブルーチンに名前をつけるサンプルです。サブルーチンの名前を実行時に決定する。型グロブと無名サブルーチンを利用することで実現できます。無名サブルーチンに名前をつける。型ブログという機能で、別名を作成することができます。ここでは名前のないサブルーチンにsumという名前をつけています。動的にサブルーチンに名前をつける。与えることができます。"\n";関数テンプレート関数テンプレートを使ったサンプルです。関数テンプレートを使って動的に複数のサブルーチンを作成する。返却されるようにする。返却されるようにする。型グロブを利用して無名サブルーチンに名前をつける。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebサービス開発も。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。