我使用下面的语法注入功能分为Text::Template
所以它知道该函数的使用fill_in()
时:动态函数注入文本::模板命名空间
*Text::Template::GEN0::some_function = *SomeLibrary::some_function;
我注意到,如果fill_in()
被称为多一次,GEN0变为GEN1,然后GEN2 ...等等。
所以这只适用于fill_in
被调用一次,因为只有GEN0命名空间被使用。
如何动态注入some_function到每个使用的命名空间?我知道它是这样的,但我不知道语法我会原封不动地使用:
my $i = 0;
foreach my $item (@$items) {
# *Text::Template::GEN{i}::some_function = *SomeLibrary::some_function;
$i++;
# Call fill_in here
}
谢谢!另一个需要这样做的原因是因为简单地在前面加上子sub my_sub {...}会导致各种'sub already defined'错误,因为Text :: Template没有选择只添加一次的选项。似乎相当疏忽,除非我错过了... – 2015-02-06 09:57:12