2012-12-06 124 views
0

我研究过(谷歌)没有成功,所以我转向S.O.求助。Perl动态创建方法

我似乎记得一种对perl包进行编码的方法,以便如果调用缺少的方法,辅助函数将执行该操作。

所有“缺失”方法具有相同的外观和感觉。他们只需要用传入的参数调用另一个库,再加上'missing'方法的名称。

该类将有一些具体的方法,例如。构造函数和析构函数。

非常感谢。

回答

3

我认为你正在寻找autoloading

通常情况下,你不能说一个没有被定义的子程序。但是,如果 在未定义的子例程的 包中(或者在对象方法的情况下,对象的基类中包含任何 的包)中有一个名为AUTOLOAD的子例程,则AUTOLOAD子例程被称为 ,它们具有相同的参数那将会传递给原来的 子程序。您可以将AUTOLOAD子程序定义为像常规子程序那样返回值 ,或者您可以使其定义例程 不存在,然后调用该程序,就好像它一直在那里一样。

调用的函数/方法名称可用这样的:

my $method= our $AUTOLOAD; 
+0

函数名(和链接文档) –

+0

感谢伟大的和快速的答案见上文。赞赏。 – nslntmnx

+0

没问题。自从我知道前几年我曾见过这种感觉以来,我感觉到了你的痛苦,但不记得它被称为什么 –