perl – 这句话的作用是什么:();
发布时间:2020-12-16 06:10:12 所属栏目:大数据 来源:网络整理
导读:我见过perl语句看起来像这样: () unless $some_var; 那打算实现什么目标? 解决方法 这里有几件事情,但最重要的是这种线通常会显示为执行块的最后一行[1].在该上下文中,块的值是最后执行的语句的值[2].现在一个语句包含除非右侧的值为左侧的值,否则为右侧的
我见过perl语句看起来像这样:
() unless $some_var; 那打算实现什么目标? 解决方法
这里有几件事情,但最重要的是这种线通常会显示为执行块的最后一行[1].在该上下文中,块的值是最后执行的语句的值[2].现在一个语句包含除非右侧的值为左侧的值,否则为右侧的值,所以这是一种说法“块的值是$some_var if $some_var恰好是真的,()否则“.
()仅仅是空列表,因此这段代码为$some_var为false的情况提供了空列表的默认值(可能是因为$some_var未定义.) 更常见的是与等同物一样实现相同的效果 $some_var or (); 放在一起,我们可以看到这些情况: use strict; use warnings; my @x = do { () unless 0 }; my @y = do { () unless 5 }; print "@x: <@x>n@y: <@y>n"; @x是空数组,因为0是假,而@y是一个包含5的数组,因为5为真. 除了作为块的最后一个语句之外的任何地方,()除非$some_var;是一个无操作.如果没有另外提到$some_var,它确实会抑制一次警告. [1]:这是一个由eval评估的块,或者提供或提供给(例如)map或grep,或称为子例程的块. [2]:“最后执行的语句的值”是一个奇怪的短语;大多数只有表达式才有值.但是因为Perl包含的概念是,在没有显式返回的情况下,块的值是最后一个语句的值,Perl需要这个奇怪的短语. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |