我想在运行脚本之后从用户命令中记录选项及其参数。获取命令行选项及其值
考虑一下这个命令:
./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