0
我必須在散列數組中使用GetOptions
。如何在perl中使用hash和getopts
我的要求是寫一個Perl腳本與例如多個選項 組合:
test.pl -a mango -s ripe -d <date value>
或
test.pl -a apple -s sour
其中mango
,ripe
,apple
,sour
等是用戶輸入它也用於綁定SELECT
查詢的SQL WHERE
子句中的變量以生成報告。
我這個代碼
use vars qw ($opt_a $opt_s $opt_d)
Getopts('a:s:d:')
現在我以書面哈希
my %hash = @ARGV
是上述散列定義是正確面臨的一個問題?有沒有更好的方法來使用哈希?
你爲什麼要這麼做?您已經處理了命令行。你不需要做'my%hash = @ARGV;'。你是說你想使用後者而不是使用Getopts? – imran 2013-04-09 17:25:42
嗨Imran實際上,帶有命令行參數的值被輸入到where子句中的select查詢中以生成報告,並且@ARGV將參數存儲在其內置數組中,因此基於給定的組合,我想生成報告,這就是爲什麼我想要使用哈希。請通過任何示例代碼向我推薦任何解決方案。 – perladdiction 2013-04-09 17:54:12
如果你想要的鍵是「-a」,「-s」和「-d」,那麼是的,散列定義是正確的。如果用戶沒有通過所有必需的參數,則需要檢查如果他們通過-d沒有價值或者他們根本不通過-d。這就是爲什麼使用預測試模塊是一個好主意。 – imran 2013-04-09 18:22:44