$ cat flaglist.log
flag1
flag2
flag3
flag4
$
Perl代码
my $infile = "flaglist.log";
open my $fpi, '<', $infile or die "$!";
while (<$fpi>) {
chomp;
if ($ENV{$_}) { # something wrong here
func($_);
}
else {
print "oops\n";
}
}
$ perl code.pl
oops
oops
oops
oops
$
所有四个标志都是设置的环境变量的名称(我使用shell中的echo $flag1
进行检查)。
这里if条件总是返回false。如果我写$ENV{flag1}
,结果为true,func()
按照我的预期调用。
我在if语句中做错了什么?
答案 0 :(得分:4)
代码似乎对我有用。尝试从输入行中删除任何空格:
while (<$fpi>) {
s/\s+//g;
# ...
}