我正在寻找一种简单的方法来检查正确数量的命令行参数,如果发生错误则显示用法消息,然后立即退出.
我想到了类似的东西
if (@ARGV < 3) {
print STDERR "Usage: $0 PATTERN [FILE...]\n";
exit 1;
}
Run Code Online (Sandbox Code Playgroud)
这是一个有效的模式吗?Sry,我是一个完全Perl noob :-).
DVK*_*DVK 28
另外,我强烈建议使用在Perl,Getopt::Long
模块中处理命令行参数的惯用方法(并开始使用命名参数而不是基于位置的参数).
如果你有<3个参数,你真的不关心.如果你有参数a,b和C,你通常会关心.
就命令行界面设计而言,3个参数是关于位置参数(cmd <arg1> <arg2>
)与任何顺序(cmd -arg1 <arg1> -arg2 <arg2>
)的命名参数之间的截止点.
所以你最好做的事情:
use Getopt::Long;
my %args;
GetOptions(\%args,
"arg1=s",
"arg2=s",
"arg3=s",
) or die "Invalid arguments!";
die "Missing -arg1!" unless $args{arg1};
die "Missing -arg2!" unless $args{arg2};
die "Missing -arg3!" unless $args{arg3};
Run Code Online (Sandbox Code Playgroud)
too*_*lic 12
另一种常见的方法是使用die
die "Usage: $0 PATTERN [FILE...]\n" if @ARGV < 3;
Run Code Online (Sandbox Code Playgroud)
您可以@ARGV
在命令行中获得有关特殊变量的更多帮助:
perldoc -v @ARGV
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35370 次 |
最近记录: |