我只是讨厌如何调用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
为方法名称起别名而使用的优点/缺点是什么?有没有更好的办法?
注意:如果你有反应goto
是邪恶的冲动,不要这样做,因为 Perl 的这种用法与goto
你的想法不同。