次の構文を使用して関数を挿入してText::Templateいるため、使用時にその関数について認識しますfill_in()。
*Text::Template::GEN0::some_function = *SomeLibrary::some_function;
fill_in()が複数回呼び出されると、後続の呼び出しで GEN0 が GEN1 に変更され、次に GEN2 に変更されることに気付きました。
fill_inGEN0 名前空間のみが使用されるため、これは が 1 回呼び出された場合にのみ機能します。
使用されている各名前空間に some_function を動的に挿入するにはどうすればよいですか? このようなものであることは知っていますが、正確に使用する構文はわかりません。
my $i = 0;
foreach my $item (@$items) {
# *Text::Template::GEN{i}::some_function = *SomeLibrary::some_function;
$i++;
# Call fill_in here
}