作业帮 > 综合 > 作业

什么是预处理块

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 00:53:23
什么是预处理块
用法(pragma)是一种特殊类型的模块,它影响你的程序编译阶段.有些用法模块可以影响程序的 运行阶段.把它们当作一种编译器提示.因为它们需要在编译时出现,所以只有通过 use 或者 no 调用它们的时候它们才能运转,而到了 require 或者 do 运行的时候,编译早就完了.习惯上,用法名字都是用小写字符写的,因为小写模块名字是为 Perl 版本自己保留的.在写你自己的模块的时候,至少在模块名字中使用一个大写字符以避免和用法名字冲突.和普通模块不同的是,大多数用法把它们的影响局限于调用它们的最内层的闭合块.换句话说, 它们是词法范围的,就好象 my 变量一样.通常,一个外层块的词法范围包括任何嵌在它内部的 内层块,但是内层块可以用 no 语句撤消一个来自外层块的词法范围用法: use strict; use integer; 用法模块比 Perl 带的其他模块里这种用法更多一些,而它们也形成了完成而又基本的 Perl 编译环境.如果你不知道怎样给编译器传递提示,那么你很难把编译器用好,因为我们将在描述用法上 下一些工夫.另外一件要注意的事情是我们经常拿用法做特性原型,稍后便把它们编码成“真正”的语法.因此 你会在一些程序里看到废弃了的用法,比如 use attrs,现在它的功能已经是子过程声明语法直接 支持了的部分了.类似的,use vars 现在正处在被 our 声明代替的过程中.而 use subs 可能 将来会被普通子过程声明中的 override 属性代替.我们现在正快得可怕地破坏做事情的老方法, 但是我们认为新方法更漂亮一些.