$ 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
$
Все четыре флага являются именами переменных среды, которые установлены (я проверил, используя echo $flag1
из оболочки).
Здесь условие if всегда возвращает false. Если я напишу $ENV{flag1}
, это приведет к истине, и func()
будет вызван, как я и ожидал.
Что я делаю неправильно в операторе if?