代码之家  ›  专栏  ›  技术社区  ›  Aakash Goel

如何在Perl中正确访问环境变量?

  •  0
  • Aakash Goel  · 技术社区  · 15 年前
    $ 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语句中我做错了什么?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Eugene Yarmash    15 年前

    代码似乎对我有用。尝试从输入行中删除任何空白:

    while (<$fpi>) {
        s/\s+//g;
        # ...
    }