我想更改執行循環的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個其他變體)。 –