Perl使用包 - AH01215:未定义的子程序

时间:2015-05-18 09:52:21

标签: perl

我正在使用 URI :: Escape 包。通常,我可以通过命名来直接调用函数,例如uri_unescape('some text')但实际上我得到了AH01215:未定义的子程序& MyFunctions :: uri_unescape被称为......

这发生在我自己的包('MyFunctions')中。我得到了使用URI :: Escape行。当我使用& URI :: Escape :: uri_unescape时,似乎工作正常。但我只是不明白为什么它在我的包中寻找这个子程序...

有人可以向我解释一下吗?有什么方法可以解决这个问题吗?每次调用此函数时,我真的不想写这个整个package-name :: funktion:/

1 个答案:

答案 0 :(得分:2)

子例程被导入到当前名称空间中。您必须在use声明之后放置package行:

package MyFunctions;
use URI::Escape;

否则,函数将导入到先前的命名空间中,在您的情况下可能是main(您可以通过运行main::uri_unescape()进行验证。