微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么时候应该使用“使用”和何时“需要”以及什么时候在“好的编程实践”中使用“AUTOLOAD”?

我们什么时候应该使用“use”和“require”以及何时使用perl中的“AUTOLOAD”?我需要一个拇指规则.
用法相当于BEGIN {require Module;模块 – >导入(LIST); }

所以,主要区别在于:

>在编译时使用
>使用自动调用import子例程(除了主要用于将标识符导出到调用者的命名空间之外,它可以执行任何操作)
>如果无法加载模块,则使用die(缺失/编译错误)

因此:

>当您需要动态加载模块时(例如,根据命令行参数确定要加载的模块),请使用require.
>通常,当您需要精确控制何时加载模块时,请使用require(使用将在前一次使用后加载模块或在编译时加载BEGIN块).
>当您需要以某种方式绕过调用模块的import()子例程时,请使用require
>当你需要做一些聪明的事情来处理加载错误(缺少模块,模块无法编译)时,你可以将require包装到eval {}语句中,这样整个程序就不会死掉.

您可以使用但是以相当优雅的方式模拟它(在早期BEGIN块中捕获模具信号应该起作用).但是eval {require}更好.
>在所有其他情况下,使用

我没有涵盖AUTOLOAD,因为那是一个不同的野兽.它的用法是在您想要调用尚未导入到命名空间的子例程的情况下.

原文地址:https://www.jb51.cc/php/135784.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐