我想更改执行循环的perl脚本,并且我想通过命令行选项传递循环数。该程序现在收到一些选项,然后我需要将其更改为接收新参数,但这是我第一次看到perl脚本,然后我不知道如何更改。 程序的开始(解析命令行选项)是:从命令行解析数字argv
if ($#ARGV >= 1) {
for ($i = 1; $i <= $#ARGV; $i++) {
if ($ARGV[$i] =~ /^\-/) {
if ($ARGV[$i] =~ /\-test/) {
//do something
}
} else {
//do something other
}
}
}
我认为我必须把这样的:
if ($ARGV[$i] =~ /^\-L40/)
但它只能匹配到40,我不知道如何解析附加到-L参数的数字以用于循环限制。
在此先感谢并对不起,如果有任何类似的问题,但我没有找到任何。
你需要某种getopt的图书馆。例如:http://perldoc.perl.org/Getopt/Long.html –
不要自己解析选项。使用核心Getopt :: Long模块。 –
如果你坚持这种方法,使用'$ ARGV [$ i] =〜m/^ - L(\ d +)$ /',但是如果使用Getopt :: Std或Getopt :: Long,两个标准模块; CPAN中的Getopt可能有40个其他变体)。 –