在perl中评估这个布尔表达式

时间:2011-08-02 14:54:01

标签: perl

我正在尝试在perl中执行此布尔表达式,我的代码应该是这样的

enter code here

 $flag = 0;
  while (<INFILE>)
{

if(/name/ && $flag==0)
 {
   $flag = 1;

 print "HELLO\n";
 }
elsif($flag)
{
  print "Bye\n";

我的计划是写这样的东西

flag=0
while<>
if(/name/ && !flag)
flag=1;
elsif(flag)
last;

所以我在代码中所做的是什么有什么不对的?这是在perl中声明真值和假值的方式

2 个答案:

答案 0 :(得分:1)

根据您的评论:

while (<>) {
    $flag = 1 if /name/;
    if ($flag) {
        # do something
    }
}

或者你可以这样做:

while (<>) { last if /name/ }
while (<>) {
    # do something
}

答案 1 :(得分:1)

一个简单的答案是:

在Perl中,0或''被视为假。非零数字(1,42等)或长度大于0的字符串('true','foo')被认为是真的。