我正在熟悉perl。我使用一行程序已经有一段时间了,现在我想了解更长的程序。
我正在阅读手册页,完成了perl,perlintro,perlsyn。在发现有man strict
之后,我对perl文档印象深刻。
在perlsyn
“声明”中:
声明可以放在语句可以放在的任何地方,但对语句的主序列的执行没有影响:声明都在编译时生效。
但是我不知道如何区分声明。正如我所理解的那样,对函数的调用可以是一个语句,也可以是一个声明,例如use VERSION
在手册页中多次提到为declaration
。知道哪一行是声明,哪一行不是声明有多大用处?
添加(并编辑标题,替换“行”):
我意识到在编译过程中是否处理某些东西可能很重要。@ikegami的回答将use
称为directive
,但更重要的是它是如何处理的:
因为“use”在编译时生效,所以它不尊重正在编译的代码的普通流控制。特别是,将“use”放在条件的false分支中并不会阻止它被处理。
有什么一般的方法可以知道代码的某一部分在编译过程中是否有效?
1条答案
按热度按时间eagi6jfj1#
声明给予编译器关于你声明的东西的信息。
字符串
在Perl中,你通常不需要声明一个sub,除非是在定义它的时候。下面是一些需要声明的例子:
型
型
与subs不同,声明一个变量也会创建它。
型
知道哪一行是声明,哪一行不是声明有多大用处?
了解声明的作用可以让您在需要时使用它。
use VERSION;
的文档确实称之为声明,但这是一个不同的词。“指令”在这里会更好。指令是指示编译器如何行为的松散术语。use VERSION;
不声明任何东西,但指示编译器执行版本检查,它告诉它使用什么“语言版本”。这不是一个格式概念。什么才算是指令是主观的,所以
知道哪一行是声明指令,哪一行不是有多大用处?
不是的
(Also,“line”?除了极少数例外,Perl不关心行。