首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解析命令行参数?

如何解析命令行参数?
EN

Stack Overflow用户
提问于 2010-10-20 05:30:19
回答 2查看 4.9K关注 0票数 5

我想要解析perl脚本中的参数列表,例如,我有这样的情况:

代码语言:javascript
复制
script.pl -h 127.0.0.1 -u user -p pass arg1 arg2 arg3

如何解析不是数组中option和标量值中option参数的参数列表?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-20 05:42:59

好吧,如果它们是命令行中唯一没有作为选项给出的东西,那么它们应该仍然是在@ARGV中。所以只需使用@ARGV即可。

代码语言:javascript
复制
use Getopt::Long;

# save arguments following -h or --host in the scalar $host
# the '=s' means that an argument follows the option
# they can follow by a space or '=' ( --host=127.0.0.1 )
GetOptions( 'host=s' => \my $host 
          , 'user=s' => \my $user  # same for --user or -u
          , 'pass=s' => \my $pass  # same for --pass or -p
          );

# @ARGV: [ qw<arg1 arg2 arg3> ]

请参阅Getopt::Long

票数 13
EN

Stack Overflow用户

发布于 2010-10-20 05:48:20

程序的参数存储在@ARGV中。

如果您想要处理任何开关,请使用Getopt::Long,这是一个标准的Perl模块。

即使你认为“哦,我可以从列表中选择我想要的东西”,请使用Getopt::Long,因为我向你保证总有一天你会添加更多的开关,你最终会说“伙计,我真希望我从一开始就开始使用Getopt::Long”。

请参阅我的博客帖子"Use Getopt::Long even if you think you don't need it"

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3972955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档