我正在使用 perl 5.16。
我有以下函数可以给出任何给定数组内的平均值:
sub GetAvgValue {
my @Array = @_;
my $Sum = 0;
foreach my $CurVal (@Array) {
$Sum += $CurVal;
}
if ( scalar(@Array) ) {
return $Sum / scalar(@Array);
}
else {
return undef;
}
}
Run Code Online (Sandbox Code Playgroud)
undef我希望它在数组内没有元素时返回,但它返回一个看起来随机的整数:
print Dumper GetAvgValue([]);
# 1. iteration: $VAR1 = '42311136';
# 2. iteration: $VAR1 = '38006240';
# 3. iteration: $VAR1 = '39394784';
Run Code Online (Sandbox Code Playgroud) 我想检查我的机器(RedHat)上的 perl 脚本中是否存在命令。
我试图检查是否compgen -c包含所需的命令,但从脚本内部运行它只会给我一个空的输出。其他命令工作正常。
示例.pl:
my $x = `compgen -c`;
print $x;
# empty output
my $y = `ls -a`;
print $y;
# .
# ..
# example.pl
Run Code Online (Sandbox Code Playgroud)
有可能的解决方案吗?或者有更好的方法来检查我的机器上的命令吗?