Perl は「There's More Than One Way To Do It (TMTOWTDI)」を掲げ、同じ処理に複数の実現手段を許容してきました。この自由さはときに自らの足を撃ち抜くほどの危うさを伴いますが、同時に、強烈な表現力と柔軟性をもたらします。
このトークでは、Perl メタプログラミングの「黒魔術」と呼ばれるテクニック——プロトタイプ宣言やシンボルテーブル、AUTOLOAD、ソースフィルタ等——を紹介し、これらを用いた共通機能の抽出や DSL の構築といった実用的な利用例を見ていきます。
同時に、開発を急加速させるその便利さと表裏一体のリスクにも目を向けます。メタプログラミングを素朴に扱うと、急坂を転がり落ちるように読みづらさやテスト困難さを招きます。そこで、直感的に見えるメタプログラミング実装と、慎重に設計されたアプローチとを比較し、その違いを整理します。
メタプログラミングは忌避すべきトリック集ではありません。正しく扱うことで、日常で使う強力な武器となります。リスクを最小化しながらメタプログラミングと付き合うための考え方と具体的な指針を持ち帰ってください。