首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在perl中添加可选参数

如何在perl中添加可选参数
EN

Stack Overflow用户
提问于 2015-09-30 17:24:36
回答 1查看 138关注 0票数 0

我想对perl中的目录路径执行命令行参数解析。我想让这个参数成为可选的。因此,当用户给出path时,它显示为赋值给一个变量$release_model,否则它将执行我为从主目录查找目录而编写的其他代码。我是perl的新手,但不知何故编写了以下代码。有人能帮上忙吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Getopt::Long
my $command_line = $GetOptions(\%Opts, "help|h","email=s@","test","model");
if($command_line==0){
print "$PROGRAM: no arguments are given";
Usage{};
}
else die "No arguments were given" 

但它不接受model作为可选参数,并抛出错误。

我刚刚开始使用perl。

EN

回答 1

Stack Overflow用户

发布于 2015-09-30 23:22:26

很难猜测你到底想要什么,因为提供的代码包含许多错误和其他没有描述的功能。但是,为了从简单的东西开始学习,我希望有一些东西符合您的要求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/perl

use strict;
use warnings;

use Getopt::Long;

my $release_model = '/path/to/"main directory"'; # default value

GetOptions( 'model=s' => \$release_model )
    or die("Error in command line arguments\n");

print "Release model is: $release_model\n";

如果您将其保存到一个文件(例如my_program.pl)并使其可执行,那么您可以看到它提供了以下功能:

  1. 如果您在不带参数的情况下调用它,则将使用./my_program.pl的默认值。
  2. 如果您使用参数model调用它(例如./my_program.pl --model /another/directory),则提供的值会分配给您使用错误参数(例如./my_program.pl --mdoel)调用它,它会打印合理的错误消息并退出。

你自己试试吧。如果您想做一些严肃的工作,请阅读一些关于Perl的教程。

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

https://stackoverflow.com/questions/32872213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文