我有一个perl子模块,它有3个参数:$ text,$ color,$ font
在这些参数中,$ color和$ font是可选的。
如果我只需要传递没有$ color的$ font,那么如何使用perl将在使用shift时将字体字符串分配给$ color。
答案 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