PerlならサンプルコードPerl入門

2008-07-09

サブルーチンのオートロード AUTOLOAD

  1. Perl
  2. 構文
  3. オートロード

 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";
}

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証