オブジェクトに対するCGI::ApplicationのアクセサーがどのようにCGI
呼び出されるかが嫌いquery
です。
インスタンスクラスが、サブクラスの現在のインスタンスに関連付けcgi
られたオブジェクトを取得するために指定されたアクセサを使用できるようにしたいと思います。CGI
CGI::Application
これが私がしていることの自己完結型の例です:
package My::Hello;
sub hello {
my $self =shift;
print "Hello @_\n";
}
package My::Merhaba;
use base 'My::Hello';
sub merhaba {
goto sub { shift->hello(@_) };
}
package main;
My::Merhaba->merhaba('StackOverflow');
これは私が思うように機能していて、問題は見られません(たとえば、継承したい場合My::Merhaba
:サブクラスは何も知る必要はありませんmerhaba
)。
書く方が良かった/もっと正しいでしょうか
sub merhaba {
my $self = shift;
return $self->hello(@_);
}
goto &NAME
メソッド名をエイリアシングする目的で使用することの長所/短所は何ですか?もっと良い方法はありますか?
注: Perlのこの使用法は、あなたが考えているものとは異なるため、goto
悪意を持って対応したい場合は、それを行わないでください。goto