youbo1 发表于 2018-8-31 13:49:34

Perl Getopt::Long 多值命令行处理

  学习新的技术:Node.js家园
  一直想学习下Perl命令行选项的处理,今天花了点时间看了下,以下是多值命令选项的方法,使用了Getopt::Long模块。
  比如你的命令行选项像下面这样,你将如何取得这些值呢?
  command -opt 50 60 70
  可以这样:
  一:GetOptions("opt=i{3}"=>\@val);
  解析:这里的i表示是整形(整数),{3}表示为三个,\@val,把这三个整数保存到val数组中。
  use 5.10.0;
  GetOptions("opt=i{3}"=>\@val);
  say $val;
  say $val;
  say $val;
  运行结果:
  C:\Perl>option.pl -opt 50 60 70
  60
  60
  70
  相对的i{3}中的i,还有s(表示字符串),f(表示浮点数)等。
  但是如果你不知道 -opt 后面到底会有多少个值时,就得用下面这样的方法:
  GetOptions("opt=i{,}"=>\@val);
  for(0..$#val){
  say $val[$_];
  }
  如果你确定你要2到4个值,那么可以像下面这样:
  GetOptions("opt=i{2,4}"=>\@val);
  先这样,有事中...

页: [1]
查看完整版本: Perl Getopt::Long 多值命令行处理