2014年10月31日金曜日

【Perl】AUTOLOADの使用例

定義されていない関数を呼び出すとこのAUTOLOADというのが呼び出される便利な関数。
cpanのモジュールを拡張して独自モジュールを作るような使い方ができる。

Foo.pm
#########################################################
package Foo;$

use strict;
use warnings;


sub AUTOLOAD {
>   our $AUTOLOAD;
>   my (@args) = @_;
>   print "autoload start..function_name:$AUTOLOAD\n";
>   print "argument is (".join(',',@args).")\n";
}

1;
#########################################################

$ perl -MFoo -e 'Foo::test("a","b","c")';
autoload start..function_name:Foo::test
argument is (a,b,c)

参考:
サンプルコードによるPerl入門 サブルーチンのオートロード AUTOLOAD
http://perldoc.jp/docs/perl/5.8.0/AutoLoader.pod