perl 有没有动态 getter/setter方法(已解决)

perl 有没有动态 getter/setter方法(已解决)

已经找到了,谢谢二位的帮助(怎么没有锁贴的功能)

我是一名程序员,主要做PHP/Perl编程,最近为公司设计一个PHP框架,核心类应用了PHP 5的动态getter/setter等方法来实现类的动态载入和实例化,我想问问大家Perl里有没有对应的方法?我想把这一特性加入到我下一个版本的Perl(v5.CGI应用框架里

补充介绍:
PHP的动态getter/setter/call/isset/unset
如下代码

class test {
function __get($var) {
// todo here
}
function __set($var, $val) {
// todo here
}
function __call($func) {
}
//...
}
这样的话你可以
$t = new test();
$t->var_name = 'var_value';
print $t->var_name;
// $var_name为任意变量名, 不需要在test类里定义, 也不需要什么get_var_name函数

想请教大家, Perl 可以实现吗?

有,用 AUTOLOAD
看大骆驼
autoload不行的,autoload只能用来自动加载模块,我需要的是做一系列的操作,比如有个核心类的实例$core已经在main包里,我只要调用main:core->{Class}就能自动载入Class模块并用规范的函数实事例化它返回它的实例,可能的操作更多,我还会在里边实现一些过滤器来实现哪些用户可以请求到某些模块而一些不能,谢谢您了
刚才怎么不能访问了
大哥,你是在怀疑本座的权威麽?
顺便说一句,main::$core->{Class} 不是 Perl 的合法语句。谢谢。
如果你要 tie 一个 hash 的话,你应该用 Tie::Hash —— 但很显然你不是,你需要的只是 AUTOLOAD 而已。
对不起,一急写错了,是$main::core 你有中文的perl cookbook吗,我只有英文的,好累
建议你去看perl best practices, 16.12
专门讲Autoloading的
对不起,我想问个比较菜的问题,如下

AUTOLOAD
{
# todo...
}

print say()

在AUTOLOAD块里我怎么获取调用的say这个子过程的名字?他可能是say,也可能是任意其他的名字,我要获取到
我都是看那几本英文的COOKBOOK和Template Toolkit等自学的,学的很肤浅,而且只有在遇到问题的时候才会翻
希望您能帮帮忙