0
AUTOLOAD
を使用して未定義のメソッドを取得できますが、クラスインスタンスで未定義の変数をキャプチャする方法はありますか?Perl - クラス内の未定義キーをキャプチャしていますか?
package Example;
sub new {
my ($class) = @_;
my $self = {};
bless($self, $class);
return $self;
}
sub AUTOLOAD {
print("hello\n");
}
use Example;
my $exp = Example->new();
$exp->methodname; # prints "hello"
$exp->{fieldname}; # currently undefined
存在しないか、値がundefinedを返します 'undef'なので、あなただけ使用することができていないキーを['defined'](https://perldoc.perl.org/functions/defined.html)。 –
特殊な処理が必要な場合は、(直接ハッシュにアクセスするのではなく)アクセサを提供してください。 – ikegami