【发布时间】:2010-07-22 06:42:52
【问题描述】:
我有一个名为Mobile::Auth 的模块来授权并重定向到登录页面。我想在我的Mobile::Auth 中访问来自Site::Auth 的所有方法,除了一个方法redirect_to_login_page,我为我的Mobile::Auth 指定了一个方法。
我做了这样的事情......
package Mobile:Auth;
use base Site::Auth;
sub redirect_to_login_page{
#get_my_mobile_specific
}
1;
在我的 Mason 组件文件中我放了..
use Mobile::Auth;
Mobile::Auth::authorize($args);
这是我的Site::Auth 的样子
package Site::Auth;
....
sub authorize {
#.....
if (!$authorize) {
redirect_to_login_page($args);
}
}
sub redirect_to_login_page{
# redirect to the login page
}
1;
授权有效,但我的问题是当我从Mobile::Auth 调用authorize 方法时,它应该调用Site::Auth::authorization 方法和Mobile::Auth::redirect_to_login_page 而不是Site::Auth::redirect_to_login_page
伙计们,任何人都可以告诉我如何做到这一点。提前致谢。
【问题讨论】:
-
这段代码对你试图做的事情是认真的。 Perl 的 OO 功能(如 SUPER)适用于方法调用,而不是过程函数调用。你必须重新设计它。