- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 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);