$ 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
$
4つのフラグはすべて、設定されている環境変数の名前です(echo $flag1
シェルから使用して確認しました)。
ここで、if条件は常にfalseを返します。と書く$ENV{flag1}
と、結果はtrueになり、func()
期待どおりに呼び出されます。
ifステートメントで何が間違っていますか?