我想在運行腳本之後從用戶命令中記錄選項及其參數。獲取命令行選項及其值
考慮一下這個命令:
./test.pl --ip localhost --id 400154 --class firstgrade
...等衆多選項和值。我需要的輸出會是這樣(通過使用log4perl):
debug - ip=>localhost id=>400154 class=>firstgrade
我做的:
use Getopt::Long;
my $ip;
my $id;
my $class;
my %h =('ip' => \$ip,
'id' => \$id,
'class' => \$class);
GetOptions(\%h);
$logger->debug(join('=>',%h));
,但它不工作。請幫忙。
感謝您的回覆。但我想我以錯誤的方式解釋這個問題。我定義了%hash,因爲每個命令中有超過50個選項,這些選項是靜態的,我應該能夠從命令中獲取它們的值(例如--ip localhost)。這是我的問題。如果我不清楚,請讓我知道解釋更多。 – 2011-02-09 12:43:16
@馬特斯頓:我更新了答案。現在,選項列表從@options數組中生成。這樣你可以傳遞任意數量的期望選項。 – bvr 2011-02-09 13:23:44
根據你的代碼,我怎麼能打印@options元素我的意思是選項和其相關的參數就像你警告的地圖哈希格式? – 2011-02-09 13:29:19