先日のエントリ、『ZabbixAPI.pm作ってみた』に出てくるこのようなコード、 $za->apiinfo_version(); $za->hostgroup_get({output => "extend"}); 実は以下のコードと等価です。 $za->call_api("apiinfo.version"); $za->call_api("hostgroup.get", {output => "extend"}); この書き方が冗長に感じたため、未定義のメソッド呼び出しを捕捉して別のメソッドに変換する処理を追加しています。 この部分ですね。 sub AUTOLOAD{ my $self = shift; my $method = our $AUTOLOAD; $method =~ s/.*:://; if($method =~ tr/_/./ == 1){ $self->call_api