Perl多个可选参数

时间:2016-02-15 05:18:47

标签: perl

我有一个perl子模块,它有3个参数:$ text,$ color,$ font
在这些参数中,$ color和$ font是可选的。

如果我只需要传递没有$ color的$ font,那么如何使用perl将在使用shift时将字体字符串分配给$ color。

2 个答案:

答案 0 :(得分:6)

多个可选参数的常用解决方案是采用哈希值。

sub myfunction {
  my %options = @_;
  my ($text, $color, $font) = @options{qw(text color font)};
  ...
}

然后你这样称呼它:

myfunction( font => 'font goes here', text => "Here's the text") # no color

答案 1 :(得分:0)

您可以使用Getopt模块。

use Getopt::Long;

#make options
my $text;
my $color;
my $font;

GetOptions('-text=s' => $text, '-color=s' => $color, '-font=s' => $font,);

unless ($text){
     die "No text arg provided";
}

#do something