- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Perl/言語仕様/AUTOLOAD へ行く。
- 1 (2012-01-13 (金) 15:35:46)
AUTOLOAD
Fooパッケージにないbar()メソッドを呼ぶと、代わりにAUTOLOAD()が呼ばれる。AUTOLOAD()ではメソッド名は$AUTOLOADで参照できる。
#!/usr/bin/env perl
use strict;
use warnings;
use 5.012;
package Foo;
use Data::Dumper ;
sub new {
my $class = shift;
bless {@_}, $class;
}
sub foo {
my $self = shift;
say "foo()";
}
sub AUTOLOAD {
my (@arg) = @_;
our $AUTOLOAD;
say 'METHOD: ' . $AUTOLOAD;
say 'ARGS: ' . Dumper \@arg;
}
package main;
my $f = Foo->new;
$f->foo();
$f->baz(1,2,3);