当前位置:  开发笔记 > 编程语言 > 正文

elsif如何在Perl中工作?

如何解决《elsif如何在Perl中工作?》经验,为你挑选了4个好方法。

为什么Perl有'elsif'而不是'elseif'?

我正在做这样的事情:

$somevariable = 0;
if ($idcount==5) 
{
    # Do something
    if (somestatement is true) # 1 
    {
        $somevariable = 1;
    }
}
elsif ($idcount > 1 && somevariable = 0)
{
    # Do something else here
}

代码永远不会出现在elsif声明中.在这种情况下idcount实际上是5,所以它涉及第一个if语句.但是内部if陈述(1)不是真的,所以$somevariable仍然为0.因为idcount是5,它应该elsif也是因为$idcount大于1并且$somevariable仍然是0.

也许我只是累了,没有看到明显的东西.



1> Chad Birch..:

不,elsif如果以前的if/elsif条件都没有,那么只有一个机会被执行,这就是它的"其他"部分.

如果你想要两者都要进行评估,那就把它变成一个if而不是一个elsif.



2> spoulson..:
elsif ($idcount > 1 && somevariable = 0)

应该:

elsif ($idcount > 1 && $somevariable == 0)

赋值运算符返回赋值0,等于false,因此逻辑和'&&'总是失败.



3> Chuck Philli..:

以下是Llama书如何回答elsif vs elseif问题:

"因为拉里这么说."



4> brian d foy..:

在任何if-elsif-else构造中,您只执行条件为true的第一个分支.一旦该分支执行,程序将在整个if-elsif-else之后启动.

如果您想对可能的多个分支执行某些操作,则需要Perl 5.10中的给定时间功能.我在最新版的Learning Perl中进行了解释,但在线也有很多例子.

至于拼写if,涉及到几个因素.

在C中,你写

if( ... ) {
   ... }
else if ( ... ) {

这有时会导致"悬空"的问题.如果你已经开始但没有完成given-when在另一个之前插入一个权利,但是截然不同elsif,那么你通过悬挂的其他方式将两者结合起来.Larry Wall并不喜欢这样,所以他将'else if'合并成一个单词,"elseif".然而,这对拉里看起来很奇怪,因为规则是"我在e之前除了c之后......",所以他通过取出"e"来确定它只是"elsif".

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有