我不一定要寻找更好的方法来做到这一点,而是非常感谢对输出的解释。最近,一位资深程序员问我为什么他的代码有效,但只是一个例子。我发现它每隔一段时间都有效。这是我的例子:
#!/usr/bin/perl -w
use strict;
my @list_env_vars = (
'$SERVER',
'$SERVER',
'$SERVER',
'$SERVER',
'$SERVER',
'$SERVER',
);
foreach (@list_env_vars){
print "$_ = ".glob()."\n";
}
perl 5.004 的输出:
$SERVER = UNIX_SERVER
$SERVER =
$SERVER = UNIX_SERVER
$SERVER =
$SERVER = UNIX_SERVER
$SERVER =
或 perl 5.10 的输出:
$SITE = $SITE
Use of uninitialized value in concatenation (.) or string at glob_test.pl line 14.
$SITE =
$SITE = $SITE
Use of uninitialized value in concatenation (.) or string at glob_test.pl line 14.
$SITE =
$SITE = $SITE
Use of uninitialized value in concatenation (.) or string at glob_test.pl line 14.
$SITE =
我个人从来没有以这种方式使用过 glob(),所以我没有能力回答他。我通读了perldoc glob文档并按照该页面上的File::Glob链接进行操作,但仍然找不到任何可以解释输出的内容。任何帮助将非常感激。