如何将命令行参数传递给perl中的getopt

时间:2014-07-30 06:05:07

标签: perl getopt

我是Perl的新手。我必须将命令行参数传递给GetOptions方法,以便我可以访问这些变量。我尝试了以下代码:

  use Getopt::Long;
  $result = GetOptions($ARGV[0] => \$serv_name, $ARGV[1] => \$serv_id);
  print "Server name is $serv_name & server id is $serv_id";

但我没有得到理想的输出。那我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

试试这个(灵感来自documentation of Getopt::Long):

use Getopt::Long;

GetOptions(
    "server_id=i"   => \my $serv_id,     # numeric
    "server_name=s" => \my $serv_name,   # string
) or die "Error in command line arguments\n";

print "Server name is $serv_name & server id is $serv_id\n";

如果server_id参数可能不是数字,请将"server_id=i"更改为"server_id=s"

以这些方式调用程序:

%> perl ex.pl --server_name=the_name --server_id=1234
# or
%> perl ex.pl -server_name the_name -server_id 1234