【发布时间】:2019-02-20 16:29:40
【问题描述】:
我在尝试执行带有 2 个数字参数的 perl 脚本时遇到问题,比如 $ARGV[0] 是 2,$ARGV[1] 是 4。我需要打印一个显示 2 的列表, 3,4 最后一项后没有逗号。以下是我现在的脚本:
unless ((@ARGV)==2){
print "error: incorrect number of arguments",
"\n",
"usage: inlist.pl a b (where a < b)",
"\n";
exit VALUE;
}
if ($ARGV[0] > $ARGV[1]){
print "error: first argument must be less than second argument",
"\n",
"usage: intlist.pl a b (where a < b)",
"\n";
exit VALUE;
}
else {
$COUNTER=$ARGV[0];
while($COUNTER <= $ARGV[1]){
print $COUNTER;
$COUNTER += 1;
if ($COUNTERELATIONAL < $ARGV[1]){
print ", ";
}
else {
print "\n";
}
$COUNTERSYNTAX
}
}
exit VALUE;
我尝试使用 join 但无济于事,我一直得到 2,3,4 的返回,
我觉得我一定错过了一些简单的东西
【问题讨论】:
-
perl -le 'print join(",", $ARGV[0]..$ARGV[1])' 2 4产生2,3,4。如果您的数字将达到数百万,可能有更好的方法来做到这一点,但至少它使用更紧凑的符号为您设置了另一个方向。 -
代码中的
VALUE字眼令人费解——在编写 Perl 脚本时不要忘记使用use strict;和use warnings;。专家使用它们来确保他们没有犯任何愚蠢的错误;新手也应该出于同样的原因使用它们。
标签: perl