- 论坛徽章:
- 0
|
本帖最后由 hztj2005 于 2018-11-25 22:51 编辑
理解这种代码,你自己运行观察一下是最好的。
Getopt这个模块中,GetOptions函数参数中 =s 指示对应的命令行参数是字符串
=i 指示对应的命令行参数是整数。
下面链接解释的比较清楚
https://blog.csdn.net/zhuzhiqi11/article/details/37877383
- use strict;
- use Getopt::Long;
- my ( $verbose, $more, $tag);
- GetOptions("verbose+" => \$verbose, #接有 + 的选项不接收变量,每次出现时增加一次变量,
- #就是命行时在参数中出现 -v -v 时 $verbose 的值为 2。
- 'more!' => \$more, #接有 ! 的选项不接收变量
- 'tag=s' =>\$tag, # 对应的命令行参数是字符串
- ) or die ("Invalid arguments.\n");
- if ($verbose){
- print "\$verbose received\n";
- } else {
- print "No expected arguments\n";
- }
- print "$verbose\n";
- print "$more\n";
- print "$tag\n";
- exit;
复制代码
执行: perl testgetopt.pl -m -v -v -tag=study
输出:
$verbose received
2
1
study
|
|