加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl脚本编写中’at compile-time’的含义是什么?

发布时间:2020-12-15 23:25:58 所属栏目:大数据 来源:网络整理
导读:我读过有关perl的内容: Perl is an interpreted language and doesn’t compile. 我还看到了在编译时和运行时的讨论. 特别是当我寻找使用和需要时,它显示了一个区别: use normally loads the module at compile time whereas require does at run time .
我读过有关perl的内容:

Perl is an interpreted language and doesn’t compile.

我还看到了在编译时和运行时的讨论.

特别是当我寻找使用和需要时,它显示了一个区别:

use normally loads the module at compile time whereas require does at run time.

所以我的问题是Perl真的编译脚本吗?
perl脚本编写中“编译时”的意思是什么?

解决方法

Perl在运行之前会编译.通常这是在之前完成的.运行perl -c将进行相当基本的代码有效性检查,并突出显示某些类型的错误(通常在我的情况下,缺少分号).

perlrun开始:

After locating your program,Perl compiles the entire program to an internal form. If there are any compilation errors,execution of the program is not attempted. (This is unlike the typical shell script,which might run part-way through before finding a syntax error.)

这包括加载和检查任何导入的模块进行相同的测试.在大多数情况下,这正是你想要的 – 这些测试/错误通常都是显示停止者,因此在开始执行之前进行检测是一件好事.

特别是当你使用严格;并使用警告;您的代码已经过预处理,可以处理更多错误.它在编译时完成,如果发现任何内容,它将中止.

同样,这通常是可取的 – 在程序中途绊倒故障通常更难以理清,因为您可能处于不一致状态.

然而,正如您所注意到的那样 – 模块之类的东西可能非常大,因此可以在运行时加载它们. Perl可以在你去的时候重新定义一堆东西 – 如果你真的想要你可以在你的代码中制作/更改子程序.

由于所谓的暂停状态问题,在“编译时”不能对子例程进行更改并测试其有效性.因此,您在运行时加载,但然后必须构建一些更详尽的完整性检查.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读