最新の「新着記事」はここから New!
2008-07-09
サブルーチンのオートロード AUTOLOAD
Perlではサブルーチンが存在しなかった場合に呼び出されるAUTOLOADというサブルーチンを定義することができます。
aaaaiiiii( 1, 2 ); our $AUTOLOAD; sub AUTOLOAD { # ... }
our $AUROLOAD を定義しておくと、呼び出された関数名を取得できます。
サンプル
サブルーチンのオートロードのサンプルです。
use strict; use warnings; # AUTOLOAD サブルーチン # ・定義しておくとサブルーチンの名前を発見できなかった場合に呼び出されます。 print "1: AUTOLOAD で、存在しない関数を呼び出す\n"; # どこにも定義していない関数を呼び出すと。 aaaaiiiii( 1, 2 ); # これが呼ばれます。 sub AUTOLOAD { # $AUROLOAD を定義しておくと、呼び出された関数名を取得できます。 our $AUTOLOAD; # 関数名と引数を受け取れます。 my (@arg) = @_; print "AUTOLOAD が呼び出されました。\n"; print "呼び出そうとした関数は、 $AUTOLOAD です。\n"; print "引数は、" . join(',', @arg) . "です。\n"; }


